WPF 基于不同的数据库表将组合框添加到数据网格或列表视图

本文关键字:数据网 数据 网格 视图 列表 添加 于不同 数据库 组合 WPF | 更新日期: 2023-09-27 18:31:52

我想向DataGridListView添加一个ComboBox,但组合框的基础ViewSource将被DataGrid的每一行DataRowView的数据过滤。

例:

公司

列表和有关公司的一些信息显示在DataGrid/ListView中。列出的公司可能有几个电话号码。我希望电话号码位于与公司信息一起显示的ComboBox中。公司信息和电话号码位于不同的表中,绑定模式只是所有数据的一种方式。

或者有没有更好的方法来显示数据?

谢谢!!

WPF 基于不同的数据库表将组合框添加到数据网格或列表视图

我会做这样的事情

视图:

<DataGrid x:Name="myGrid" ItemsSource="{Binding Companies}">
     <DataGrid.Columns>
         <DataGridTextColumn Binding="{Binding CompanyName}"/>
     </DataGrid.Columns>
     <ie:Interaction.Triggers>
        <ie:EventTrigger EventName="SelectionChanged">
            <ie:InvokeCommandAction Command="{Binding SelectedItemChangedCommand}"  CommandParameter="{Binding ElementName=myGrid, Path=SelectedItem}"/>
        </ie:EventTrigger>
    </ie:Interaction.Triggers>
</DataGrid>
<ComboBox ItemsSource="{Binding SelectedCompanyPhoneNumbers}"/>

视图模型:

public class MainWindowViewModel
{
    public MainWindowViewModel()
    {
        SelectedItemChangedCommand = new DelegateCommand<object>((selectedItem) => 
        {
            var selected = selectedItem as Company;
            SelectedCompanyPhoneNumbers = selected.CompanyPhoneNumbers;
        });
    }
    public view LoadCompanies()
    {
        // Load the companies information from different tables ...
    }
    public List<Company> Companies { get; set; }
    public DelegateCommand<object> SelectedItemChangedCommand { get; set; }
    public List<string> SelectedCompanyPhoneNumbers { get; set; }
}

型:

public class Company
{
    public string CompanyName { get; set; }
    public List<string> CompanyPhoneNumbers { get; set; }
}

我在这个例子中使用了 Prism 框架。iie是命名空间的快捷方式:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:ie="http://schemas.microsoft.com/expression/2010/interactivity"

这里发生的情况是,viewModel 包含所选公司电话号码的列表。每当公司发生更改(在此示例中选择了网格中的不同行)时,所选公司的电话号码都会相应更改。

以下是 MVVM 上的一些很好的链接:

http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial

http://www.codeproject.com/Articles/126249/MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute

http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

祝你好运