【发布时间】:2018-12-06 07:35:09
【问题描述】:
我有一个 TreeView 填充了我的自定义类型 ToolbarTreeItem 的项目。现在当用户点击一个项目时,我想知道MainViewModel中点击了哪个项目。
我想在没有代码的情况下实现这一点,但使用RelayCommand。
那么如何在不使用标准事件的情况下将所选项目传递给RelayCommand,这会导致代码落后?
MainViewModel.cs 中的代码-sn-p:
private ToolbarTreeItem _selectedItem;
private RelayCommand<ToolbarTreeItem> _changeSelectedItem;
public RelayCommand<ToolbarTreeItem> ChangeSelectedItem
{
get
{
return _changeSelectedItem ?? (_changeSelectedItem = new RelayCommand<ToolbarTreeItem>(selectedItem =>
{
_selectedItem = selectedItem;
}));
}
}
Toolbar.xaml 中的 Xaml-sn-p:
<TreeView SelectedItemChanged="???" />
【问题讨论】:
-
@ASh,但我在 Xaml 中没有此属性,只有在代码中访问
TreeView时才可用。 -
行为、转换器在您看来也算作代码隐藏吗?
-
@Rekshino,不,但你知道吗,使用其中任何一个都有可能吗?
-
当然!在行为中,您可以访问 TreeView 的每个事件和属性。您可以随时在 xaml 中附加此行为
标签: c# wpf mvvm mvvm-light relaycommand