2016-10-20 5 views
0

I(..still learning wpf ..)は、信号が有効かどうかを示す最初の列でDataGridを作成しました。 XAMLで助けが必要な場合:DataGridCheckBoxColumn双方向は一方向のみで動作します

:データグリッドの

<DataGrid.Columns> ... 
     <DataGridCheckBoxColumn Width ="30" Header="" IsReadOnly="False" Binding="{Binding IsEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> 
    </DataGrid.Columns> 

ItemSouceが正しく設定とObservableCollection<Signal> signalListのリスト内のデータにバインドされています。すべてがDataGridに正しく表示されます。したがって、signalListからDataGridへのバインドはうまくいきます。

もう一方で、私はsignalListを変更するたびにDataGridを自動的に更新することができます。ただし、私が行う場合

signalList[0].IsEnabled = true; 

DataGridは更新されません。私は多くを検索しましたが、まだ答えを見つけることができません。

私は何かを見逃しましたか?どうも。

EDIT1:

DataGridのは、私は別の行をクリックし、見えないところにスクロールバーを描画する場合にのみ、更新されますか。その後、私がスクロールを戻すと、行が正しく表示されます。私は確かに何かを逃したと思う、誰かが私にヒントを与えることができますか?

+0

あなたは 'INotifyPropertyChanged'を実装しましたがINotifyPropertyChangedの – Aybe

+0

aybeと同意します。おそらくsignalList.isenabledプロパティに実装する必要があります – gavin

+0

あなたは正しいです!私はインターフェイスを追加し、今すぐ動作します。どうもありがとうございました! – OISS

答えて

0

私はAybeとgavinの助けを借りて問題を解決しました。記録のために、私はここに私のコードを追加します。

クラス信号を:?

{ 
... 
    private bool isEnabled; 
    public bool IsEnabled 
    { 
     get { return isEnabled; } 
     set { isEnabled = value; OnPropertyChanged(new PropertyChangedEventArgs("IsEnabled"));} 
    } 

public event PropertyChangedEventHandler PropertyChanged; 
public void OnPropertyChanged(PropertyChangedEventArgs e) 
{ 
    if (PropertyChanged != null) 
    PropertyChanged(this, e); 
} 
} 
関連する問題