首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式调用treeView.SelectedItemChanged

如何以编程方式调用treeView.SelectedItemChanged
EN

Stack Overflow用户
提问于 2013-08-20 12:59:32
回答 3查看 1.8K关注 0票数 0

在我的程序中,我想使用SelectedItemChanged代码隐藏调用一个c#事件,只是不确定作为参数传递什么。这是给TreeViewItem的。

代码语言:javascript
复制
//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‘参数

我希望这是一个简单的问题,但如果我没有提供足够的信息,或还不够清楚,请告诉我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-20 13:26:49

添加到@Bart Friederichs的答案并假设您有对TreeView的引用,您可以添加以下方法:

代码语言:javascript
复制
private void SetSelectedItem()
{
     MainWindowViewModel.SelectedItem = TreeOne.SelectedItem;
}

然后,您可以在任何您喜欢的地方调用它:

代码语言:javascript
复制
private void TreeOne_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
    SetSelectedItem();
}

private void TreeOne_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    SetSelectedItem();
}
票数 1
EN

Stack Overflow用户

发布于 2013-08-20 13:04:35

通常的设计模式是调用某种处理方法,而不是“手动”触发事件:

代码语言:javascript
复制
private TreeOne_SelectedItemChaned(object sender, 
                        RoutedPropertyChangedEventArgs<object> e) {
    processChange();
}

然后,通过使用代码,只需调用processChange(),无需调用TreeOne_SelectedItemChanged

票数 0
EN

Stack Overflow用户

发布于 2013-08-20 13:17:12

试着打电话

TreeOne_SelectedItemChanged(空,空);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18335723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档