2016-12-27 12 views
-1

C#DataGridのItemsSourceを1つの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"> 

ListaProveedoresProveedorSeleccionadoがViewModel2で、ViewModel1です。私はLocatorViewModelリソースがパブリックプロパティを使用して、両方のビューモデル(ProveedoresViewModelと「ViewModel2」または任意の他の1が呼ばれた)を露出することを提供ProveedorSeleccionado

答えて

0

のためのDataContextを指定する必要が 、あなただけのデータグリッドのSelectedItemプロパティを結合することができますあなたはまた、明示的に別のリソースへの結合のソースを設定することができ

<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}" 
「ViewModel2」のサブプロパティに
関連する問題