我正在嘗試使用絕對最簡單的HierarchicalDataTemplate
將嵌套數據綁定到WPF TreeView
。出於某種原因,我的樹的孩子是不可見的:HierarchicalDataTemplate不顯示任何孩子 - 爲什麼不?
這裏是整個X AML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<TreeView Name="ctTree">
<TreeView.Resources>
<HierarchicalDataTemplate DataType = "{x:Type src:MyClass}"
ItemsSource = "{Binding Path=Children}">
<TextBlock Text="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
</Window>
和這裏的所有的C#這背後,除了usings和命名空間:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var collection = new ObservableCollection<MyClass>
{
new MyClass { Name = "parent one" },
new MyClass { Name = "parent two" },
};
collection[0].Children.Add(new MyClass { Name = "child one" });
collection[0].Children.Add(new MyClass { Name = "child two" });
ctTree.ItemsSource = collection;
}
}
class MyClass
{
public string Name { get; set; }
public ObservableCollection<MyClass> Children
= new ObservableCollection<MyClass>();
}
注意,數據模板並實際應用於項目:數據從Name
取屬性,如果模板不適用,則會顯示爲「MyClass」。
我該如何讓孩子們表演?我似乎和HierarchicalDataTemplate
上的所有例子完全一樣。
當然!我以前用「正常」綁定看過這個。現在只有一個問題:我的例外在哪裏告訴我我是如何搞砸的?我希望它不會像它那樣悄然失敗...... – 2012-03-17 14:38:13
「您可以在6分鐘內接受答案」,儘管我剛剛測試過它的工作原理。謝謝你。 – 2012-03-17 14:39:11
那麼,當出現錯誤時,綁定通常很安靜,這使得調試非常煩人。如果綁定似乎不能正常工作,我的步驟通常是:1)檢查拼寫錯誤。 2)確保財產確實存在。 3)確保DataContext設置正確並符合期望值。 4)將一個空轉換器添加到綁定中,並在其中設置一個斷點以查看發生了什麼。 – max 2012-03-17 14:43:25