我有一个数据网格绑定到一个ViewModel集合,它有一个名为Distance的属性。在xaml中是否有办法将Distance属性发送到ViewModel中datagrid itemsource所在的方法?
例如:( GetDistanceInKM将与报告集合在同一个VM上)
<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 :(得分:0)
您无法绑定到方法,只能绑定到属性。如果要在属性更改时调用方法,请在该属性的setter中执行此操作。 如果我理解正确,你有两个选择:
设置Distance
后,请致电GetDistanceInKM
并修改新的属性DistanceInKM
。然后使用转换器将您的DataTrigger
绑定到DistanceInKM
。
将DataTrigger
直接绑定到Distance
媒体资源,并在IsDistanceGreaterThanTenKMs
转换器中转换为公里。