XamDataGridでViewModelのプロパティとバインドさせて特定の行を選択させたい場合は、

  1. ViewModel側にobject配列型のプロパティを用意する。
  2. 1で用意したプロパティの値として、選択させたいデータ項目を追加する。
  3. XamDataGridのSelectedDataItemsを1で用意したプロパティとバインドする。
  4. XamDataGridのSelectedDataItemsScopeをRecordsOnlyにする。

で実現可能です。

// ViewModel側
internal class MainWindowViewModel : ObservableObject
{
    ...

    // 1. ViewModel側にobject配列型のプロパティを用意する。
    private object[] _selectedPeople;

    public object[] SelectedPeople
    {
        get { return _selectedPeople; }
        set {
            _selectedPeople = value;
            OnPropertyChanged();
        }
    }

    public MainWindowViewModel()
    {
        ...
        // 2. 1で用意したプロパティの値として、選択させたいデータ項目を追加する。
        // _peopleはXamDataGridに表示するデータソース
        SelectedPeople = new object[]
        {
            _people[0], _people[2], _people[5]
        };
    }
}
<!-- View側 -->

<!--
3. XamDataGridのSelectedDataItemsを1で用意したプロパティとバインドする。
4. XamDataGridのSelectedDataItemsScopeをRecordsOnlyにする。
-->
<igDP:XamDataGrid ...
    SelectedDataItems="{Binding SelectedPeople, Mode=TwoWay}" SelectedDataItemsScope="RecordsOnly">
    ...
</igDP:XamDataGrid>

 

実行結果

 

サンプル

 

ヘルプドキュメント、APIリファレンス

 

Tagged:

製品について

Ultimate UI for WPF