所以,我有一个listview
不同datatemplates
的在这里看到:
<ListView Panel.ZIndex="0" x:Name="FilterList" Margin="10,0" Grid.Row="2"
Grid.ColumnSpan="3" Background="White" ItemTemplateSelector="{StaticResource
ReportFilterTemplateSelector}" ItemsSource="{Binding reportParameters,
Mode=TwoWay}" ScrollViewer.CanContentScroll="False">
我的一个样本datatemplates
如下所示。一切都很好。我的问题是,对于这个(和其他)datatemplates
,我可以拥有同一个实例的多个实例。在这种特殊情况下,treeview
itemssource
必然会DataContext.OfficeListText
填充所有元素。
<DataTemplate x:Key="office">
<Grid MinHeight="35" MaxHeight="250">
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding rpName}" VerticalAlignment="Center" Grid.Row="0" Grid.Column="0" />
<Expander HorizontalAlignment="Stretch" Grid.Row="0" Grid.Column="1"
Header="{Binding Path=DataContext.OfficeListText, RelativeSource=
{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
VerticalAlignment="Top" ExpandDirection="Down">
<TreeView Tag="{Binding rpParameter}" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" ItemsSource="{Binding
Path=DataContext.OfficeList, RelativeSource={RelativeSource
FindAncestor, AncestorType={x:Type UserControl}}, Mode=TwoWay}"
ItemTemplate="{StaticResource CheckBoxItemTemplate}"
ItemContainerStyle="{StaticResource TreeViewItemStyle}"/>
</Expander>
</Grid>
</DataTemplate>
主要问题是一个,例如,如果我在第一个中选择一个办公室treeview
,第二个treeview
显示相同。本质上,我希望它们最初具有相同的 itemssource,但具有单独的实例。因为它们是动态生成的,所以我遇到了困难。任何帮助,将不胜感激。
我不确定还需要哪些其他代码,因为我确信根据我需要做些什么来完成这项工作,大部分代码都是不敬的,但如果你想要更多,我很乐意提供。谢谢!