1

orComboBoxに aを追加したいのですが、コンボボックスの基になるものは、の各行からのデータによってフィルター処理されます。DataGridListViewViewSourceDataRowViewDataGrid

例:

会社のリストと会社に関するいくつかの情報がDataGrid/内に表示されますListView。リストされている会社には、複数の電話番号がある場合があります。ComboBox会社情報と一緒に表示される に電話番号を入れたいです。会社情報と電話番号は別のテーブルにあり、バインド モードはすべてのデータに対して一方向にすぎません。

または、データを表示するためのより良い方法はありますか?

ありがとう!!

4

1 に答える 1

0

私はこのようなことをします

意見:

<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 フレームワークを使用しました。iとは、名前空間へのieショートカットです。

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

幸運を

于 2013-09-18T14:12:32.230 に答える