/ / Як я можу зв'язати WPF DataGridComboBoxColumn з властивістю ViewModel? - c #, wpf, mvvm, datagrid

Як я можу прив'язувати WPF DataGridComboBoxColumn до властивості ViewModel? - c #, wpf, mvvm, datagrid

У мене є WPF DataGrid, на мою думку, з колонкою, яку я хочу мати можливість редагувати за допомогою комбінації. Зробити так, я створюю властивість на моєму огляді, як це:

public List<EnumeradorWCFModel> TiposCarga { get; set; }

Властивість правильно заповнена за допомогою сервісу WCF. Тепер це моє визначення DataGrid:

<DataGrid ItemsSource="{Binding Path=TarifarioSel.TarifariosDet}"
IsReadOnly="False" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn Width="200" Header="Tipo Carga" ItemsSource="{Binding Path=TiposCarga}"
SelectedValueBinding="{Binding Path=ID_TipoCarga}"  DisplayMemberPath="Descripcion" SelectedValuePath="ID"/>
</DataGrid.Columns>

Я також спробую це, не пощастило:

<DataGrid ItemsSource="{Binding Path=TarifarioSel.TarifariosDet}"
IsReadOnly="False" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn Width="200" Header="Tipo Carga" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}}, Path=DataContext.TiposCarga}"
SelectedValueBinding="{Binding Path=ID_TipoCarga}"  DisplayMemberPath="Descripcion" SelectedValuePath="ID"/>
</DataGrid.Columns>

Проблема полягає в тому, як я можу прив'язати PropertySource властивість стовпця combobox до властивості всередині мого перегляду.

Будь-яка допомога, будь ласка! Дякую!

Відповіді:

2 для відповіді № 1

В порядку. Знайдіть її самостійно, але не знайте, чому вона повинна бути зроблена так.

<DataGrid ItemsSource="{Binding Path=TarifarioSel.TarifariosDet}"
IsReadOnly="False" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn Width="200" Header="Tipo Carga"
SelectedValueBinding="{Binding Path=ID_TipoCarga}"  DisplayMemberPath="Descripcion" SelectedValuePath="ID">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.TiposCarga}"/>
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.TiposCarga}"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>