我的视图中有一个WPF DataGrid,我希望能够使用组合框编辑一列。这样做,我在我的viewmodel上创建了一个属性,如下所示:
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>
问题是如何将组合框列的ItemsSource属性绑定到viewmodel中的属性。
请帮忙!谢谢!
答案 0 :(得分:2)
确定。自己找,但不知道为什么必须这样做。如果有人需要,我会发布答案。
<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>