XAML中基于MVVM模式的数据绑定

时间:2012-04-10 14:55:59

标签: xaml

如何在datagrid列为ComboBox时填充数据网格。 在下面的代码中,我的列没有被填充.......但是组合框包含一些项目。

示例代码。

<Window x:Class="ComboBox_Test.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <DataGrid ItemsSource="{Binding First}" AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" Margin="177,60,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="200">
        <DataGrid.Columns>
         <DataGridTemplateColumn Header="WH Code" Width="70">
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <ComboBox Height="22" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=DataContext.Last}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
    </DataGridTemplateColumn>`  </DataGrid.Columns>
    </DataGrid>
</Grid>

1 个答案:

答案 0 :(得分:0)

<ComboBox ItemsSource="..." SelectedItem="{Binding WHCode, Mode=TwoWay}" />

这将选择与当前数据项的WHCode属性对应的组合框项(如果找到)。它还允许组合框在用户更新选择时更新模型值。

我不明白为什么要将组合框绑定到与datagrid相同的集合。我可能会在视图模型上创建一个WHCodes属性,并使用Path=DataContext.WHCodes(或类似的东西),使其从一组“WH代码”中填充组合框。