我想從兩個用戶控制元件構建一個 TreeView,它們是分層構建的(標題下方的專案)。這應該通過系結兩個嵌套的ObservableCollection. 由于所有控制元件都已在下級視圖中定義,因此不應在上級視圖中定義它們。
據我了解,設定樹視圖的 itemsource 然后定義HierarchicalDataTemplate和“底層”就足夠了DataTemplate。
然而,不幸的是,視圖和視圖模型的分配不適用于以下設定:
應用程式.xaml:
<DataTemplate DataType="{x:Type Models:EvaluationHeaderViewModel}">
<Views:EvaluationHeaderView/>
</DataTemplate>
<DataTemplate DataType="{x:Type Models:EvaluationItemViewModel}">
<Views:EvaluationItemView/>
</DataTemplate>
樹視圖:
<TreeView
MaxHeight="500"
Name="EvaluationTreeView"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
Grid.Row="4"
Grid.Column="1"
ItemsSource="{Binding EvaluationHeaderViewModels, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type Models:EvaluationHeaderViewModel}" ItemsSource="{Binding EvaluationItemViewModels}"/>
<DataTemplate DataType="{x:Type Models:EvaluationItemViewModel}"/>
</TreeView.Resources>
</TreeView>
名單:
private ObservableCollection<EvaluationHeaderViewModel> evaluationHeaderViewModels;
public ObservableCollection<EvaluationHeaderViewModel> EvaluationHeaderViewModels {
get => evaluationHeaderViewModels;
set
{
evaluationHeaderViewModels = value;
OnPropertyChanged();
}
}
public ObservableCollection<EvaluationItemViewModel> EvaluationItemViewModels { get; set; }
public EvaluationHeaderViewModel()
{
EvaluationItemViewModels = new ObservableCollection<EvaluationItemViewModel>();
EvaluationItemViewModels.Add(new EvaluationItemViewModel());
}
如何將 ObservableCollections 系結到 TreeView 以便顯示 UserControls?
uj5u.com熱心網友回復:
您似乎定義了兩次模板。洗掉<TreeView.Resources>元素或定義要在其中使用的實際模板,而不是 in App.xaml:
<TreeView ItemsSource="{Binding EvaluationHeaderViewModels}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type Models:EvaluationHeaderViewModel}"
ItemsSource="{Binding EvaluationItemViewModels}">
<Views:EvaluationHeaderView/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type Models:EvaluationItemViewModel}">
<Views:EvaluationItemView/>
</DataTemplate>
</TreeView.Resources>
</TreeView>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/423092.html
標籤:
