Xaml - 将viewmodel属性发送到另一个viewmodel中的方法

时间:2014-10-08 15:46:12

标签: wpf xaml mvvm

我有一个数据网格绑定到一个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>

1 个答案:

答案 0 :(得分:0)

您无法绑定到方法,只能绑定到属性。如果要在属性更改时调用方法,请在该属性的setter中执行此操作。 如果我理解正确,你有两个选择:

  1. 设置Distance后,请致电GetDistanceInKM并修改新的属性DistanceInKM。然后使用转换器将您的DataTrigger绑定到DistanceInKM

  2. DataTrigger直接绑定到Distance媒体资源,并在IsDistanceGreaterThanTenKMs转换器中转换为公里。