C# 更改列表视图(MVVM)
我想知道在列表视图中动态显示不同内容的最佳设计是什么 我想要的是(例如)根据单选按钮,列表视图中可以填充项目(设置ItemsSource、更改列宽、名称和行信息本身) 我目前正在做的是动态更改所有列表视图属性 我想知道是否最好使用多个列表视图(甚至可能作为用户控件),所有视图都位于同一窗口位置,并隐藏所有未使用的视图 另外,由于我使用的是MVVM Light/WPF,所以如果可能的话,我希望能够轻松地将其连接到XAML代码。如果ItemsSource中的更改及时发生(或者您希望根据某些条件(如RadioButton的IsChecked属性)进行更改,您需要考虑更改DataTemplate。解决方法是创建DataTrigger,它将根据某些条件交换数据模板C# 更改列表视图(MVVM),c#,wpf,listview,mvvm-light,C#,Wpf,Listview,Mvvm Light,我想知道在列表视图中动态显示不同内容的最佳设计是什么 我想要的是(例如)根据单选按钮,列表视图中可以填充项目(设置ItemsSource、更改列宽、名称和行信息本身) 我目前正在做的是动态更改所有列表视图属性 我想知道是否最好使用多个列表视图(甚至可能作为用户控件),所有视图都位于同一窗口位置,并隐藏所有未使用的视图 另外,由于我使用的是MVVM Light/WPF,所以如果可能的话,我希望能够轻松地将其连接到XAML代码。如果ItemsSource中的更改及时发生(或者您希望根据某些条件(如R
<ListView>
<ListView.Style>
<Style TargetType="ListView">
<Setter Property="ItemsSource" Value="{Binding InitalSource}"/>
<Setter Property="ItemTemplate" Value="{StaticResource InitialDataTemplate}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=RadioButton, Path=IsChecked}" Value="True">
<Setter Property="ItemsSource" Value="{Binding AnotherSource}"/>
<Setter Property="ItemTemplate" Value="{StaticResource AnotherDataTemplate}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.Style>
</ListView>
每当DataTrigger的条件停止为true时,默认情况下,setter所做的所有更改都将消失,因此,如果已检查RadioButton的值为False,则无需添加另一个DataTrigger。如果您更改内容并希望ListView在显示数据时跟随该更改,为什么不在更改数据时更改DataTemplate?将ObservableCollection绑定到单选按钮,并根据需要更改此集合行动。查看此组件。按钮的数据会动态地改变你的答案。我认为两者可能使用相同的解决方案。(为什么不回答,这样我就可以“奖励”你分数)。它看起来比隐藏小部件要好。这个例子看起来很好(我现在有了丑陋的代码)。