0

我在这里需要一些帮助。

我的窗口上有一个按钮。单击按钮时,我想将采取的操作路由到已在其他用户控件中创建的事件。这些用户控件嵌入在窗口本身中。

用户控件中的事件是

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 事件。

4

2 回答 2

1

使用空值作为 RoutedEventArgs 调用如下

Item_Checked(PropertyGrid1,null);
于 2013-11-07T12:02:21.193 回答
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();  
}
于 2013-11-07T12:18:57.540 回答