표준 WPF 트리 뷰가 있고 모델 클래스를 볼 항목을 바인딩했습니다.WPF에서 MVVM은 ViewModel을 창 열기와 관련시켜야합니다. About-window?
이제는 항목을 두 번 클릭했을 때의 동작 (비주얼 스튜디오 스타일의 문서 열기)을 처리하고자합니다.
TreeView (xaml 표시)가있는 컨트롤에서 이벤트 처리기를 실행할 수 있지만 뷰 모델 클래스의 특정 동작 (예 : ProjectViewModel?
이 다른 곳에서 사용되는 바람직하게는 ..., ICommand의-구현에 의견에 대한
감사합니다, 바인딩
앤더스, 덴마크 제목-질문에<TreeView ItemsSource="{Binding Projects}" MouseDoubleClick="TreeView_MouseDoubleClick">
<TreeView.ItemContainerStyle>
<!--
This Style binds a TreeViewItem to a TreeViewItemViewModel.
-->
<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.Resources>
<HierarchicalDataTemplate DataType="{x:Type Implementations:ProjectViewModel}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="Images\Region.png" />
<TextBlock Text="{Binding DisplayName}" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type Implementations:PumpViewModel}" ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="Images\State.png" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type Implementations:PumpDesignViewModel}">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Margin="3,0" Source="Images\City.png" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</TreeView.Resources>
</TreeView>
죄송합니다 - 두 가지 질문이 섞여 있습니다. –
'body'의 질문에 대해서는 : 표시, 지연로드 등과 관련하여 개별 트리 아이템을 처리하는 viewmodel 객체가 있습니다. 그러나 treeview에서 항목을 '활성화'/ 두 번 클릭하려는 경우, 이 작업을 디스플레이를 처리하는 동일한 viewmodel 객체로 처리하도록하겠습니다.하지만 어떻게해야합니까? –
제목 질문에 답을 얻으면서 답변으로 표시했습니다. '본문'질문은 [여기] (http://stackoverflow.com/questions/4497825/wpf-mvvm-how-to-handle-double-click-on-treeviewitems-in-the-viewmodel)에 다시 게시되었습니다. 죄송합니다 inconveneince (하드 단어 ;-)) –