2009-08-14 10 views
1

Silverlightページにバインドされたビューモデルで公開されているIEditableObjectインターフェイスを実装するオブジェクトがあります。SilverlightでIEditableObjectを使用する

どのようにBeginEdit、CancelEdit、EndEditメソッドを呼び出すのですか?このインターフェイスを実装しているオブジェクトだけをページに拘束するにはどうすればよいですか?

私はDataGridまたはDataFormコントロールを使用していません。私はLabel、TextBox、DescriptionViewerコントロールを使って編集用のデータを表示しています。

答えて

6

私は、これは古いスレッドです知っている(しかし、将来の使用のために...)

私はそれをこのように実行します。

(CollectionViewSourceのインスタンスの)現在の項目は、これを変更するたびに行われます。

void View_CurrentChanged(object sender, EventArgs e) 
     { 
      if (culturesView.Source != null) 
      { 
       ((IEditableObject)SelectedRecord).BeginEdit(); 
       RaisePropertyChanged("SelectedRecord"); 

      } 
     } 

私は(現在のアイテム)を保存したいときはいつでも、私はこれを行う:

private void Save() 
{ 
((IEditableObject)SelectedRecord).EndEdit(); 
//do the actual saving to the dbms here .... 

} 

私は(現在の変更)をキャンセルしたいときはいつでも、私はこれを行う:

private void Cancel() 
{    
((IEditableObject)SelectedRecord).CancelEdit(); 
      //allthough we have canceled the editing we have to re-enable the edit mode (because 
      //the user may want to edit the selected record again) 
      ((IEditableObject)SelectedRecord).BeginEdit(); 

} 

は、それが将来的に誰かを役に立てば幸い!

+0

これは私の質問のいくつかの正確な答えではありませんが、サンプルコードは(とこの質問を投稿してから経過した時間)私にいくつかのアイデアを与えてくれました。ありがとう! – DaveB

関連する問題