2016-12-27 63 views
-1

C#如何将DataGrid的ItemsSource绑定到一个ViewModel和DataGrid的SelectedItem到另一个?

DataContext="{Binding ProveedoresViewModel, Mode=OneWay, Source={StaticResource LocatorViewModel}}" 

XAML

<DataGrid Margin="10" 
      ItemsSource="{Binding ListaProveedores, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
      GridLinesVisibility="All" 
      SelectedItem="{Binding ProveedorSeleccionado, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
      AutoGenerateColumns="False" 
      CanUserAddRows="False" 
      BorderThickness="1" 
      BorderBrush="Black"> 

ListaProveedores是ViewModel1,ProveedorSeleccionado是ViewModel2。 我需要指定通过公共属性前提是LocatorViewModel资源暴露两个视图模型ProveedorSeleccionado

回答

0

DataContext的(ProveedoresViewModel和“ViewModel2”或任何其他一个叫),你可以只绑定DataGrid的SelectedItem属性以“ViewModel2”的一个子属性:

<DataGrid Margin="10" ItemsSource="{Binding ListaProveedores, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" GridLinesVisibility="All" 
        SelectedItem="{Binding ViewModel2.ProveedorSeleccionado, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
        AutoGenerateColumns="False" CanUserAddRows="False" BorderThickness="1" BorderBrush="Black"> 

你也可以明确设置绑定的源到另一个资源,如:

SelectedItem="{Binding ProveedorSeleccionado, Source={StaticResource ViewModel2}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
相关问题