1

WPF アプリケーションに MVVM アーキテクチャを実装しています。Infragistics XamDataGrid を使用したいのですが、ビュー モデル レイヤーでの選択変更イベントの実装については、ちょっと迷っています。

どんな助けでも大歓迎です。

早急に解決策が必要です!!!

Anshuman Chakravarty Humana Inc.

4

5 に答える 5

2

上記の問題を解決しました。私はそれを非常に簡単な方法で行いました。

  1. XamGrid の ActiveCell プロパティを VM のオブジェクト タイプ プロパティにバインドします。
  2. プロパティのセッターで、メソッドを呼び出してオブジェクトを渡します。
  3. メソッド内で、オブジェクトを Infragictics.Windows.Cell タイプ変数にキャストします。
  4. Infragistics.Windows.Cell オブジェクトの Record.Index を使用して、選択されたインデックスを見つけます。
  5. そのインデックスを使用して、xamdatagrid がバインドされた元のコレクション/データ ソースから選択された行を見つけます。

シンプルだけど効果的!!!

于 2012-06-05T19:20:44.117 に答える
2

xamdatagrid によるその他のイベントを次に示します。

SelectedItemsChanged
SelectedItemsChanging

RecordActivating
RecordActivated

これらはあなたを助けるかもしれません。

于 2012-06-01T12:01:14.377 に答える
0

MVVM を使用して選択したアイテムをバインドできるようにする場合は、ビヘイビアーを使用してこれを達成することをお勧めします。Devin Rader は、ビュー モデルと選択のための UI の間で値を同期する方法について説明しているブログ記事を書きました。ビュー モデル内で選択がいつ変更されたかを知るために、同様のものを使用できるかもしれません。

この件についてご不明な点がございましたら、お知らせください。

于 2012-06-08T08:02:25.580 に答える
-2

あなたが求めているデータ グリッドを使用したことはありませんが、他のすべてのものと同じように機能することは間違いありません。

ビューをバインドしている ViewModel には、SelectedItem という名前のプロパティまたはその効果があるものがあります。

public object SelectedItem
{
    get { return (object)GetValue(SelectedItemProperty); }
    set { SetValue(SelectedItemProperty, value); }
}

// Using a DependencyProperty as the backing store for SelectedItem.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty SelectedItemProperty =
    DependencyProperty.Register("SelectedItem", typeof(object), typeof(ownerclass), new UIPropertyMetadata(0));

xaml では、おそらくグリッドの Selected プロパティをその依存関係プロパティにバインドできます。

<XamDataGrid ItemsSource={Binding Items} SelectedItem={Binding SelectedItem, UpdateSourceTrigger=PropertyChanged} />
于 2012-05-31T17:49:10.243 に答える