2016-12-27 2 views
-1

C#Wie binden DataGrids ItemsSource an ein ViewModel und DataGrids SelectedItem an ein anderes?

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 Ist ViewModel1, ProveedorSeleccionado ViewModel2 ist. Ich brauche die Datacontext für ProveedorSeleccionado

Antwort

0

wird bereitgestellt, um anzugeben, dass die LocatorViewModel Ressource beide Ansicht Modelle (ProveedoresViewModel und „ViewModel2“ oder was auch immer der andere genannt wird) aussetzen durch öffentliche Eigenschaften, könnten Sie einfach die SelectedItem-Eigenschaft des Datagrid binden zu einer Unter Eigenschaft „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"> 

Sie auch explizit die Quelle der Bindung an eine andere Ressource, zum Beispiel einstellen könnte:

SelectedItem="{Binding ProveedorSeleccionado, Source={StaticResource ViewModel2}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
Verwandte Themen