2011-11-28 76 views
1

改變DataGrid行的顏色,我想通過可能的話結合實現follwing ...如何,如果記錄被改變

我有一個WPF的DataGrid綁定到一個ObservableCollection

public class Product 
{ 
    public string Code { get; set; } 
    public string Desc { get; set; } 
    public bool Updated { get; set; } 
} 

我網格的DataContext被設置爲可觀察集合。

我想達成什麼......

  • 當用戶在DataGrid改變行產品的更新字段被更改爲「true」。
  • 由於這個原因,我可以以某種方式綁定網格的行顏色以顯示不同的顏色,這將向用戶指示該行尚未保存。

認爲,我將需要執行INotifyPropertyChanged做到這一點,但並不一定就究竟是如何做到這一點。此外,網格上是否存在綁定屬性以確保UI上所做的更改更新後備存儲?

乾杯。

+1

然而,更多的財產濫用,使用的事件,如果你有一個事件... –

+0

好吧,如果我在網格中有100個項目,怎麼能我「聽」可能有任何物品引發的事件。如何連接可以檢測後備存儲中任何更改的處理程序? – Remotec

+0

那麼,這是一個問題,現有的WPF功能只支持屬性,如果你想保持你的設計清潔,並且可能需要使用其他庫,比如[Blend SDK]中的'Interactivity'(http:///www.microsoft.com/download/en/details.aspx?id=10801)。它的['EventTrigger'](http://msdn.microsoft.com/en-us/library/system.windows.interactivity.eventtrigger_members%28v=Expression.40%29.aspx)比.NET中的更靈活。 –

回答

3
  1. Product類應該implementINPC所以綁定Updated被更新。

    您還可以更改所有屬性的設置程序以將Updated設置爲true

  2. 您可以在屬性觸發:

    <DataGrid.RowStyle> 
        <Style TargetType="DataGridRow"> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding Updated}" Value="True"> 
           <Setter Property="Background" Value="Orange"/> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
    </DataGrid.RowStyle> 
    
相關問題