【发布时间】:2017-09-02 14:17:24
【问题描述】:
我有一个 WPF MVVM 应用程序,其中包含一个绑定到 ViewModel 类中相同实体列表的 DataGrid 和一个 ComboBox。 我想通过 ComboBox 选择过滤 DataGrid 条目,这样做的正确方法是什么?由于我正在使用 MVVM,因此我想通过数据绑定来实现这一点,并避免后面出现无用的代码。
我的 XAML 代码如下所示
<DataGrid ItemsSource="{Binding Posts}" AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Id}" />
<DataGridTextColumn Header="Title" Binding="{Binding Title}" />
<DataGridTextColumn Header="BlogUrl" Binding="{Binding Blog.Url}" />
</DataGrid.Columns>
</DataGrid>
<ComboBox ItemsSource="{Binding Posts}"
DisplayMemberPath="Blog.Url" />
视图模型
public class MainWindowViewModel
{
private SqliteDbContext context;
public List<Post> Posts { get; set; }
public MainWindowViewModel()
{
context = new SqliteDbContext();
Posts = context.Posts.Include(p => p.Blog).ToList();
}
}
此外,使用此代码,我的 ComboBox 会显示重复的 Urls,我如何区分这些值?
谢谢。
【问题讨论】:
-
引用另一个so
标签: c# wpf xaml mvvm data-binding