Silverlight 在xaml文件中,如何使用另一个cs文件中的事件处理程序?
例如,我在xaml文件中有一个带有单击事件的按钮: < 按钮x:Name=“ButtonFindCoordinate”Content=“Map坐标”Click=“ButtonFindCoordinate\u Click”/ 据我所知,这个ButtonFindCoordinate\u Click事件处理程序必须是cs文件背后代码中的一个函数。是否有任何方法可以引用此xaml文件中另一个cs文件中的事件处理程序(例如,此按钮来自aa.xaml文件,并且我在bb.cs中保存了一个事件处理程序函数)?如何编写此代码 谢谢Silverlight 在xaml文件中,如何使用另一个cs文件中的事件处理程序?,silverlight,Silverlight,例如,我在xaml文件中有一个带有单击事件的按钮: < 按钮x:Name=“ButtonFindCoordinate”Content=“Map坐标”Click=“ButtonFindCoordinate\u Click”/ 据我所知,这个ButtonFindCoordinate\u Click事件处理程序必须是cs文件背后代码中的一个函数。是否有任何方法可以引用此xaml文件中另一个cs文件中的事件处理程序(例如,此按钮来自aa.xaml文件,并且我在bb.cs中保存了一个事件处理程序函数)?如
Wei将aa.xaml的引用传递给bb.cs,并使用该引用访问事件 我想说,通常更好的做法是将处理程序的逻辑提取到一个单独的类中,然后让两个单击处理程序调用相同的方法 比如说 在A.xaml.cs中
private void ButtonFindCoordinate_Click(object sender, EventArgs e)
{
string postCode = CoordinateFinder.FindPostCode(txtButtonFind.Text);
}
和B.xaml.cs
private void OtherButton_Click(object sender, EventArgs e)
{
string postCode = CoordinateFinder.FindPostCode(txtSomeOtherField.Text);
}
然后CoordinateFinder类可以是这样的
public class CoordinateFinder
{
public static string FindPostCode(string coordinates)
{
// shared code here.
}
}
我之所以说最好不要跨类“共享”单击处理程序,是因为您希望代码尽可能可读和可维护
想象一下,如果你几个月后回来,看到B类的点击处理程序调用a类的点击处理程序-现在你必须阅读a的点击处理程序来发现它做了什么
此外,如果您(或您团队中的某个人)要更新aa.xaml.cs,他们可能会访问aa.xaml中的字段,这将在他们不知情的情况下破坏bb.cs
希望对您有所帮助-谢谢您的友好回复,但是如何将aa.xaml的引用传递到bb.cs?你能给我举个例子吗?