【发布时间】:2012-03-21 19:28:02
【问题描述】:
我在 .xaml 文件中有以下 sn-p 代码:
<TreeView MouseDoubleClick="TreeView_MouseDoubleClick" ItemsSource="{Binding MyList}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
如您所见,当您在 TreeView 中的某个项目上“MouseDoubleClick”时,它将执行后面代码中的代码......即......
private void TreeView_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
try
{
MessageBox.Show(((TreeViewWithViewModelDemo.LoadOnDemand.HtmlFileViewModel)(((System.Windows.Controls.TreeView)(sender)).SelectedValue)).HtmlFileName);
}
catch
{
}
}
我正在尝试遵循 Model-View-ViewModel 设计模式,并希望将此 MouseDoubleClick 事件的实现从 View 移到 ViewModel 中。
我知道,如果我使用命令,我会使用 {Binding Command="Select"}(或实现 ICommand 接口的类似命令),但我似乎无法找到此特定问题的语法,因为它不是命令按钮。
谁能帮帮我?
谢谢
【问题讨论】: