我想將模型持有的對象的集合綁定到WPF中的樹視圖。我的XML做到這一點是基於WPF Treeview Databinding Hierarchal Data with mixed types,但我沒有任何運氣。在WPF中綁定到樹視圖
我目前的XAML看起來是這樣的treeview。
<TreeView Name="ConfigurationFilter">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type models:MyModel}" ItemsSource="{Binding Path=Filters.FilterType1}">
<StackPanel Orientation="Horizontal">
<CheckBox></CheckBox>
<Label Content="{Binding Path=Name}"></Label>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
我有一個模型,看起來像這樣
public class MyModel
{
public Observable<MyFilter> FilterType1 {get;set;}
public Observable<MyFilter> FilterType2 {get;set;}
}
public class MyFilter
{
public string Name {get;set;}
public bool IsSelected {get;set;}
}
在我的MainWindow.Xaml.cs我有以下幾點:
public partial class MainWindow : Window
{
public MyModel Filters { get; set; }
}
的FilterType1的財產中有331項。然而,當我運行應用程序時,綁定永遠不會發生。我在Treeview中看不到任何項目。我究竟做錯了什麼?
更新1
我已經加入我的主窗口,作爲樹視圖中的數據上下文和約束力的建議,但我仍然沒有任何項目在樹
<TreeView Name="ConfigurationFilter" ItemsSource="{Binding Filters}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type models:MyModel}" ItemsSource="{Binding Path=Filters.FilterType1}">
<StackPanel Orientation="Horizontal">
<CheckBox></CheckBox>
<Label Content="{Binding Path=Name}"></Label>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
和我MainWindow.cs
public MainWindow()
{
InitializeComponent();
ConfigurationFilter.DataContext = this;
}
我這就給了一槍,但它仍然沒有奏效。我已經更新了我的問題,以使用您的示例顯示我的XAML和MainWindow.cs代碼。沒有任何內容呈現給用戶界面。你認爲這是我試圖綁定到對象內的屬性,如Filters.FilterType1的問題? –
你是如何填充濾鏡的?它看起來不像它將填充它的代碼。 –
是的,MyObject是從存儲庫中獲取的。在將對象返回到MainWindow之前,存儲庫使用數據填充FilterType集合。這發生在窗口加載方法 –