我需要一些帮助。
我的窗户上有一个按钮。单击按钮时,我想将所采取的操作路由到已在其他usercontrol中创建的事件。这些用户控件嵌入在窗口本身中。
usercontrol中的事件是
public void Item_Checked(object sender, RoutedEventArgs e)
{
object selected = this.GetType().GetField("Person", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).GetValue(this);
this. PropertyGrid1.SelectedObject = selected;
}
在窗口中创建的按钮为:
<Button Content="clickme" Name="click" Grid.Column="2" Height="20" Width="50" Click="click_Click" />
窗口中的按钮事件如下所示:
private void click_Click(object sender, RoutedEventArgs e)
{
/// dosomething
}
有人可以帮助我吗?我想在按钮点击上调用Item_checked事件。
答案 0 :(得分:1)
使用null值作为RoutedEventArgs进行调用,如下所示
Item_Checked(PropertyGrid1,null);
答案 1 :(得分:1)
这是编程中的常见问题。普遍接受的解决方案只是添加一个新方法,其中包含当前在Item_Checked
事件处理程序中的内容,然后从处理程序和您可能想要的任何其他位置调用该方法:
在UserControl
:
public void DoSomething()
{
object selected = this.GetType().GetField("Person",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Static).GetValue(this);
this.PropertyGrid1.SelectedObject = selected;
}
public void Item_Checked(object sender, RoutedEventArgs e)
{
DoSomething();
}
在Window
中(其中yourUserControl
是对您UserControl
的引用):
private void click_Click(object sender, RoutedEventArgs e)
{
yourUserControl.DoSomething();
}