2014-10-08 78 views
0

我有一個DataGrid綁定到一個ViewModel集合,該集合有一個名爲Distance的屬性。在xaml中有沒有辦法將Distance屬性發送到ViewModel中DataGrid項目源所在的方法?
例如:(GetDistanceInKM將是對同一個VM的報告的集合)Xaml - 將ViewModel屬性發送給另一個視圖模型中的方法

<DataGrid ItemsSource="{Binding ReportViewModels}"> 
    <DataGrid.Columns> 
     <DataGridTextColum Binding="{Binding Distance}" Header="Distance" EditingElementStyle="{StaticResource DistanceStyle}"/> 
    </DataGrid.Columns> 
</DataGrid> 

<Style x:Key="DistanceStyle" TargetType="{x:Type TextBox}"> 
    <Style.Triggers> 
     <DataTrigger Binding={Binding GetDistanceInKM[Distance], Converter={StaticResource IsDistanceGreaterThanTen}} Value="True"> 
      <Setter Property="BorderBrush" Value={StaticResource HighlightBorderBrush}"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 
+0

我想你需要在這裏雙向綁定。這會告訴您的代碼每次更改其中的任何一個值時更新其他值,以使所有值始終保持不變。 – Hosch250 2014-10-08 16:04:45

回答

0

您不能結合的方法,只有屬性。如果您想在屬性更改時調用方法,請在該屬性的setter中執行。 如果我理解正確的話,你有兩個選擇:

  1. Distance設置,調用GetDistanceInKM並修改一個新的屬性DistanceInKM。然後使用轉換器將您的DataTrigger綁定到DistanceInKM

  2. DataTrigger直接綁定到Distance屬性,並在IsDistanceGreaterThanTenKMs轉換器中轉換爲kms。

相關問題