WPF에서 첫 번째 MVVM 응용 프로그램을 만드는 중입니다.WPF : ICommand에 바인딩 된 TreeViewItem
기본적으로 내가 겪고있는 문제는 WPF 창에 배치 한 TreeView (System.Windows.Controls.TreeView)가 있고 CommandViewModel 항목의 ReadOnlyCollection에 바인딩 할 것을 결정했으며 항목은 DisplayString, Tag 및 RelayCommand로 구성됩니다.
이제 XAML에서 TreeView가 있고 이에 대한 ReadOnlyCollection을 성공적으로 바인딩했습니다. 나는 이것을 볼 수 있고 모든 것이 UI에서 멋지게 보인다.
이제는 RelayCommand를 TreeViewItem의 명령에 바인딩해야하지만 TreeViewItem에 명령이없는 것을 볼 수 있습니다. IsSelected 속성이나 TreeView_SelectedItemChanged 메서드 뒤에있는 코드에서이 작업을 수행하도록 강요합니까? 아니면 WPF에서이 작업을 마술처럼 수행 할 수있는 방법이 있습니까?
이
는 내가 가지고있는 코드 :<TreeView BorderBrush="{x:Null}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TreeView.Items>
<TreeViewItem
Header="New Commands"
ItemsSource="{Binding Commands}"
DisplayMemberPath="DisplayName"
IsExpanded="True">
</TreeViewItem>
</TreeView.Items>
이상적 난 그냥 가고 싶어요 :
<TreeView BorderBrush="{x:Null}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TreeView.Items>
<TreeViewItem
Header="New Trade"
ItemsSource="{Binding Commands}"
DisplayMemberPath="DisplayName"
IsExpanded="True"
Command="{Binding Path=Command}">
</TreeViewItem>
</TreeView.Items>
누군가가 나를 수있는 솔루션이 있습니까 내가 가지고있는 RelayCommand 인프라를 사용합니다.
감사합니다. , 버튼을 수 보이게하거나 하나처럼 행동을 선택한 후 버튼에 바인딩 내 명령을 수행하지 않도록 한 후 버튼을 피부에 TreeViewItem의 the Header를 설정 내가 할 줄
리처드
저는 ASP.NET treeview를 사용하여 TreeView와 TreeViewItem을 확장하여 이러한 종류의 기능을 추가 할 수 있다고 생각합니다. TVI를 변경하여 필요한 것을 추가 한 다음 TV에서 메소드를 오버로드하여 TVI의 새 인스턴스를 만듭니다. WPF 트리 뷰에서 동일한 패턴을 사용할 수 있는지 여부는 알 수 없습니다. 나는 철저히 검사하지는 않았다. – Will