在我的程序中,我想使用SelectedItemChanged代码隐藏调用一个c#事件,只是不确定作为参数传递什么。这是给TreeViewItem的。
//Gets selected item in TreeView
private void TreeOne_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
MainWindowViewModel.SelectedItem = e.NewValue as TreeViewItem;
}
//I'm calling the SelectedItemChanged event from a RightButtonDown event
private void TreeOne_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
TreeOne_SelectedItemChanged(/* What would go here? **/);
}而且,当我试图构建这个程序时,我会收到一个编译器错误,这就导致了这个问题……
方法
TreeOne_SelectedItemChanged没有过载,使用'0‘参数
我希望这是一个简单的问题,但如果我没有提供足够的信息,或还不够清楚,请告诉我。
发布于 2013-08-20 13:26:49
添加到@Bart Friederichs的答案并假设您有对TreeView的引用,您可以添加以下方法:
private void SetSelectedItem()
{
MainWindowViewModel.SelectedItem = TreeOne.SelectedItem;
}然后,您可以在任何您喜欢的地方调用它:
private void TreeOne_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
SetSelectedItem();
}
private void TreeOne_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
SetSelectedItem();
}发布于 2013-08-20 13:04:35
通常的设计模式是调用某种处理方法,而不是“手动”触发事件:
private TreeOne_SelectedItemChaned(object sender,
RoutedPropertyChangedEventArgs<object> e) {
processChange();
}然后,通过使用代码,只需调用processChange(),无需调用TreeOne_SelectedItemChanged。
发布于 2013-08-20 13:17:12
试着打电话
TreeOne_SelectedItemChanged(空,空);
https://stackoverflow.com/questions/18335723
复制相似问题