我有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;
答案 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?