だから、私はここに見られるよう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">
私のサンプルの 1 つを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
、2 番目treeview
に同じものが表示されることです。基本的に、最初は同じアイテムソースを持ちますが、別々のインスタンスを持つ必要があります。それらは動的に生成されるため、ここで行き詰まります。どんな助けでも大歓迎です。
これを機能させるために必要なことに基づいて、そのほとんどが無礼になると確信しているため、他にどのようなコードが必要になるかはわかりませんが、さらに必要な場合は喜んで提供します. ありがとう!