2012-07-09 38 views
1

邊使用轉換器,我希望綁定到整個對象,並將其發送到轉換器來使用,而不是綁定到每個單獨的屬性,所以我可以這樣做:結合對象不是財產

Order thisOrder = (Order)values[0]; 

(注意,它是一個multibinding,其他值都被派去除了thisOrder對象。現在訂單類實現INotifyPropertyChanged接口,並提出了相應的事件時,其任何屬性的改變,該轉換器需要訪問多個屬性雖然它實際上只需要重新運行其中一個屬性的改變,有沒有辦法綁定到整個對象,以便如果任何屬性發生變化,轉換器將被評估爲增益,還是隻綁定到一個屬性,但讓對象的其餘部分也可用作轉換器的參數?

詳細例子: 訂單有以下字段:

  • ID
  • MarketPrice
  • 名稱

當MarketPrice變化,轉換器需要重新計算基於 ID和市場價。據我所知,目前還沒有乾淨地解決了這一

<MultiBinding Converter="{StaticResource MarketPositionToBrushConverter}"> 
    <Binding RelativeSource="{RelativeSource Self}" Path="Record.DataItem"/> 
... 
</MultiBinding> 

回答

0

: 目前,結合應用在xamDataGrid的DataRecordCellArea,如下所示。我建議你添加兩個綁定,一個到Order對象,以便您可以訪問所有的值,另外的MarketPrice,使裝訂的更新是該屬性的變化。然後您可以通過第一個綁定訪問對象和所有屬性,並獲得相應的更新。

的是這是一個相當黑客的另一種方法,你可以訂閱PropertyChanged在類擁有的Order實例,然後觸發一個變更通知的Order實例屬性每當MarketPrice在實例中的變化。我會避免這樣做,但它可以讓你擺脫第二次綁定。

+0

希望我想到了第一種方法!雖然從理論角度來看,這讓我在實踐層面上很容易讓事情完成。我會再等幾天來看看是否會出現一個不太危險的解決方案,否則我會執行此操作。 – Neil 2012-07-10 10:38:01