,我有以下在的.xaml文件的代碼片段:問題通過MV-MV設計模式綁定MouseDoubleClick
<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
{
}
}
我試圖遵循模型 - 視圖 - 視圖模型設計模式,並想從視圖中移動這個MouseDoubleClick事件的執行遠並進入ViewModel。我知道,如果我使用的是命令,我會使用{Binding Command =「Select」}(或類似的實現ICommand接口的東西),但是我似乎無法找到這個特定問題的語法,因爲它不是一個命令按鈕。
有人可以幫我嗎?
謝謝
有沒有辦法通過Xaml上的{Binding}來完成? – 2012-03-21 19:33:48
是的。在引用的stackoverflow帖子中有鏈接。 使用手勢:http://www.thejoyofcode.com/Invoking_a_Command_on_a_Double_Click_or_other_Mouse_Gesture.aspx 使用ramora模式:http://blog.lexique-du-net.com/index.php?post/2010/02/17/Use- AttachedProperties-to-add-behaviour-to-the-components – 2012-03-21 19:39:47
任何獲取手勢的方法{Binding}?我嘗試了以下,它抱怨... –
2012-03-21 20:39:02