0

データグリッド列が 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>
4

1 に答える 1

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

WHCodeこれにより、現在のデータ項目のプロパティに対応するコンボボックス項目 (見つかった場合) が選択されます。また、ユーザーが選択を更新すると、コンボボックスがモデル値を更新できるようになります。

コンボボックスをデータグリッドと同じコレクションにバインドする理由がわかりません。私はおそらくWHCodesビューモデルにプロパティを作成し、 Path=DataContext.WHCodes(または同様のものを)使用して、一連の「WHコード」からコンボボックスに入力するようにします。

于 2012-04-10T17:04:04.773 に答える