2011-08-15 21 views
1

マイデータグリッドは、のItemsSourceにグループのリストがあります:WPFでDataGridから値を編集するには?

public class Group : INotifyPropertyChanged 

{ 
    public Group() { } 
    public Group(int groupID, string groupName) 
    { 
     this.GroupID = groupID; 
     this.GroupName = groupName; 
    } 

    private int _groupID; 
    public int GroupID 
    { 
     get { return _groupID; } 
     set 
     { 
      _groupID = value; 
      OnPropertyChanged("GroupID"); 
     } 
    } 

    private string _groupName; 
    public string GroupName 
    { 
     get { return _groupName; } 
     set 
     { 
      _groupName = value; 
      OnPropertyChanged("GroupName"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    protected void OnPropertyChanged(string property) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(property)); 
     } 
    } 
} 

をしかし、私は、セルを編集するとき、私はグループクラスからOnPropertyChangedを焼成にEnterキーを押す必要があることを実現します。だから私はセルの値を編集する場合は、私はEnterキーを押すまで、イベントを発生させないでください。

Enterキーを押さずにセル値を編集するとイベントが発生する可能性がありますか?

答えて

4

デフォルトの双方向バインディングをUpdateSourceTrigger = "PropertyChanged"に変更する必要があります。 MSDNから

例:

<TextBox Name="itemNameTextBox" 
     Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" /> 

例:http://msdn.microsoft.com/en-us/library/system.windows.data.binding.updatesourcetrigger.aspx

UpdateSourceTriggerバインディングプロパティページ:あなたは、XAML内UpdateSourcetriggerを使用する必要がhttp://msdn.microsoft.com/en-us/library/system.windows.data.updatesourcetrigger.aspx

0

3種類があります。

  1. PropertyChanged - ターゲットプロパティ値 が変更されるたびに、ソースが更新されます。
  2. LostFocus - ターゲットプロパティが変更され、ターゲットオブジェクトがフォーカスを失うと、ソースが更新されます。
  3. Explicit - "BindingExpression.UpdateSource"を使用して更新を明示的に呼び出したときに、ソースが更新されます。
0

フォーカスが失われたときに、デフォルトでWPFのDataGridには鍵が次の行にタブ移動、押す、またはプログラムの行にコミット呼びかけている「と入力し」、行の行をコミットします。

あなたはhere

を取得するいくつかのより多くの情報
関連する問題