1

あるモデルのデータを含むクラスがあります。このクラスには、実際の値とともにメタデータがあります。

class ServerValue {

    public int SomeId {get;}
    public int SomeOtherId {get;}
    public DateTime LastChanged {get;}

    public object Value {get;set;}

    // this lets me show the value, but how do i update it from the grid?
    public override string ToString(){
        return Value.ToString();
     }
}

今では、あらゆる種類のロジックを持つ DataTable から派生したクラス MyDataTable もあります。サーバーを呼び出し、一連の ServerValues を取得し、それらを行と列に配置します。

最後に、MyDataTable にバインドする WPF DataGrid があり、データが表示されます。これは、DataGrid が各 ServerValue で ToString を呼び出し、表示用の値を取得するためです。ここまで万歳。

ここで、双方向のデータバインディングを行いたいので、グリッドへの入力は ServerValue に書き戻されます。したがって、グリッド セルを ServerValue 自体ではなく、ServerValue の Value プロパティにバインドしたいと考えています。

現在、DataGrid セルの ServerValue は文字列に置き換えられています。これを回避することはできますが、最初にエレガントなルートを試してみたいと思います。

したがって、セルに複合型のデータテーブルがあり、その型の特定のプロパティへの双方向データバインディングが必要です。

これは可能ですか?私はこれについてグーグルで調べてきましたが、これについては何もできません。

前もって感謝します、

ジョン

4

1 に答える 1

1

あなたが望むのは、オブジェクトとそのテキスト表現を相互に変換する方法です。

バインディングのコンバーターを定義する

http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

于 2010-03-19T16:11:02.110 に答える