在wpf应用程序之间发送参数

时间:2014-10-06 17:34:23

标签: c# wpf syntax-error

我有2个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);
    }
}

错误: 可访问性不一致:参数类型&#39; System.Collections.Generic.List&#39;比方法更容易访问&#39; MapSample.Forms.CreatRadar(double,double,double,double,int,System.Collections.Generic.List)&#39;

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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