2014-10-08 2 views
0

Distance라는 속성이있는 ViewModel 컬렉션에 바인딩 된 DataGrid가 있습니다. xaml에서 Datagrid itemsource가있는 ViewModel의 메서드에 해당 Distance 속성을 보내는 방법이 있습니까? 예를 들어
: (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

답변

0

에만 속성, 메소드에 바인딩 할 수 없습니다. 속성이 변경 될 때 메서드를 호출하려면 해당 속성의 설정자에서 수행하십시오. 내가 제대로 이해하면 당신은 두 가지 옵션이 있습니다 Distance이 설정되면

  1. , GetDistanceInKM를 호출하고 새 속성 DistanceInKM을 수정합니다. 그런 다음 변환기를 사용하여 DataTriggerDistanceInKM에 바인드하십시오.

  2. DataTriggerDistance 속성에 직접 바인딩하고 IsDistanceGreaterThanTenKMs 변환기에서 kms로 변환하십시오.

관련 문제