问题
Is it possible to set the ItemsSource of a list view based on Some condition. I tried the following, but it didn't work.
<ListView ItemsSource="{Binding FirstTypeOfSource}" .....>
<ItemsControl.ItemContainerStyle>
<Style >
<Style.Triggers>
<DataTrigger Binding="{Binding Category}" Value="All">
<Setter Property="ItemsSource" Value="SecondTypeOfCategory"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ItemsControl.ItemContainerStyle>
</ListView>
Can someone help to figure out the solution ?
回答1:
Try this
Add a name to a ListView.
<ListView x:Name="someName" ItemsSource="{Binding FirstTypeOfSource}" .....>
Use element name to find desired DependencyProperty:
<DataTrigger Binding="{Binding Category}" Value="All">
<Setter TargetName="someName" Property="ItemsSource" Value="SecondTypeOfCategory"/>
</DataTrigger>
回答2:
This should do it
<ListView ItemsSource="{Binding FirstTypeOfSource}">
<ListView.Style>
<Style TargetType="ListView">
<Style.Triggers>
<DataTrigger Binding="{Binding Category}" Value="All">
<Setter Property="ItemsSource" Value="{Binding SecondTypeOfCategory}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.Style>
</ListView>
来源:https://stackoverflow.com/questions/33039056/wpf-set-the-itemssource-of-list-view-based-on-some-condition