2014-10-06 42 views
0

我有2个wpf应用程序。 我需要将其作为参数发送给其中一个参数,并在该参数中更改参数,并在另一个wpf应用程序中使用变量的新值。在wpf应用程序之间发送参数

我的代码:

1 WPF:

Forms.CreatRadar creatRadarWPF = new Forms.CreatRadar(azimuthStart,AzimuthEnd,Long,Lat,numOfRadars,listRadars); 
      creatRadarWPF.Show(); 

2 WPF:

public partial class CreatRadar : Window 
{ 
    private double AzimuthStart; 
    private double AzimuthEnd; 
    private double Long; 
    private double Lat; 
    private int numOfRadars; 
    private List<Radar> ListRadars; 

    public CreatRadar(double AzimuthStart, double AzimuthEnd, double Long, double Lat, int numOfRadars, List<MapSample.Radar> ListRadars) 
    { 
     InitializeComponent(); 
    } 

    private void CreatRadarBtn_Click(object sender, RoutedEventArgs e) 
    { 
     this.AzimuthStart = double.Parse(txt_AzimuthStart.Text.ToString()); 
     this.AzimuthEnd = double.Parse(txt_AzimuthEnd.Text.ToString()); 
     this.Long = double.Parse(txt_Long.Text.ToString()); 
     this.Lat = double.Parse(txt_Lat.Text.ToString()); 
     this.ListRadars = ListRadars; 
     this.numOfRadars = numOfRadars; 

     this.numOfRadars++; 
     Radar RadarTemp = new Radar(numOfRadars, this.AzimuthStart, this.AzimuthEnd, this.Long, this.Lat, 1, 1); 
     this.ListRadars.Add(RadarTemp); 

     MapDrawManager.Instance.Draw(RadarTemp); 
    } 
} 

错误: 可访问性不一致:参数类型 'System.Collections.Generic.List' 是比方法'MapSample.Forms.CreatRadar(double,double,double,double,int,System.Collections.Generic.List)'更方便'

+0

貌似问题是与listRadars参数,留下空白,看看会发生什么? – boomoto 2014-10-06 17:43:25

回答

1

您的班级MapSample.Radar似乎不公开。这是必要的,因为它在公共函数CreatRadar中使用。

+0

雷达类是公开的.. – 2014-10-06 17:51:44

+0

你确定你需要参数在函数CreatRadar中吗?他们没有使用。还是你剪代码? – Fratyx 2014-10-06 17:55:33

+0

...什么是MapSample?名称空间或(公共:-))父类? – Fratyx 2014-10-06 17:58:03

0

MapSample.Radar类是公共类还是内部类?如果是这样,请考虑更改此类的内部修饰符,并确保它显示“public class MapSample.Radar”。如果您可以从其他WPF应用程序使用它们,则必须根据需要将其他类型更改为公开。或者,您还可以通过在AssemblyInfo文件中设置InternalsVisibleTo属性,将程序集更改为其他WPF应用程序的朋友程序集。

更多关于朋友程序集的信息在这里以及如何强名称程序集(请注意,在Visual Studio中也可以设置程序集的签名,使得sn命令不必从命令行运行) : How to declare a friend assembly?

+0

雷达类是公开的: 公共类雷达:MapObject { – 2014-10-06 17:50:00

相关问题