Pun 의도입니다.WPF - TreeView 컨트롤에 희미합니다.
HierarchicalDataTemplate 클래스를 사용하여 간단한 TreeView를 만들고 싶습니다.
<Window.Resources>
<ObjectDataProvider
x:Key="myDataProvider"
ObjectType="vm:ContractViewModel" />
</Window.Resources>
<Window.DataContext>
<Binding Source="{StaticResource myDataProvider}" Path="Contract" />
</Window.DataContext>
<StackPanel
Orientation="Vertical"
VerticalAlignment="Top">
<ListBox MinWidth="400" Margin="10"
ItemsSource="{Binding Commissions}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Id}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TreeView>
<HierarchicalDataTemplate DataType="{x:Type m:Contract}"
ItemsSource="{Binding Commissions}">
<TextBlock Text="{Binding Id}" />
</HierarchicalDataTemplate>
</TreeView>
</StackPanel>
내가 MVVM 패턴을 사용하고 있습니다 :
여기 내 문제 XAML입니다. StaticResource "myDataProvider"는 Contract (사용자 정의) 클래스의 인스턴스를 반환합니다. 내 모델은 다음과 같습니다.
internal class Contract
{
public string Name { get; set; }
public ObservableCollection<Commission> Commissions { get; set; }
}
internal class Commission
{
public string Id { get; set; }
}
FYI - 실제로 모델이 더 복잡합니다. 내 클래스에는 표시된 것보다 많은 멤버가 포함되어 있으며 생성자가 있으며 INotifyPropertyChanged를 구현합니다.
제 테스트에서 두 개의 Commission 객체를 Contract 객체에로드합니다. 목록 상자가 예상대로 작동합니다. 계약서에있는 각 Commission 객체의 ID를 볼 수 있습니다. TreeView가 작동하지 않습니다. 각 Commission Id가 나열 될 것으로 예상되는 TreeView 컨트롤에 "System.Windows.HierarchicalDataTemplate"문자열을 반환합니다.
나는 other posts 및 MSDN을 사용하지 않았습니다. 나는 너의 도움에 감사 할거야!
당신이 당신의' ' '. 콘솔에서 볼 수있는 몇 가지 바인딩 오류에 대해 알려주십시오. –
Kcvin
같은 결과; TreeView 컨트롤에서 "System.Windows.HierarchicalDataTemplate"문자열을 반환합니다. 오류 메시지가 표시되지 않습니다. –