1

にある DataGrid 内で ComboBox を使用していますCellEditingTemplate。選択したアイテムを同じセルのテキストブロックに挿入しCellTemplateます。挿入は、次のセルに移動したときにのみ発生します。

私が欲しいのは、ComboBox から項目を選択すると、次のセルに移動せずに TextBlock に挿入する必要があることです。

ここに私のxamlがあります。

        <DataGrid.Columns>
            <DataGridTextColumn Header="Hours"  Binding="{Binding time}" FontSize="14" FontWeight="Bold" IsReadOnly="True"  Width="100"/>


            <DataGridTemplateColumn Header="Monday" Width="100">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel >
                            <TextBlock x:Name="mon" Text="{Binding Path=SelectedSubject}"></TextBlock>
                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <!--<ComboBox x:Name="monday" Width="50"   IsSynchronizedWithCurrentItem="true"   Loaded="monday_Loaded" SelectionChanged="monday_SelectionChanged"></ComboBox>-->
                            <ComboBox x:Name="monday" Width="50" ItemsSource="{Binding Path=Subjects}" SelectedItem="{Binding Path=SelectedSubject}"  IsSynchronizedWithCurrentItem="true"   Loaded="monday_Loaded" SelectionChanged="monday_SelectionChanged"></ComboBox>

                            <ComboBox x:Name="staff" Width="50" Loaded="staff_Loaded"></ComboBox>
                        </StackPanel>
                    </DataTemplate>

                </DataGridTemplateColumn.CellEditingTemplate>

これを行うことは可能ですか?

誰かがそれを行う方法について何か考えがある場合は、私を助けてください。

4

2 に答える 2

0

に名前を追加すると、そこからアクセスして編集をコミットDataGridできます。monday_SelectionChanged

<Grid x:Name="myGrid" ....>

ComboBox 選択変更イベントのハンドラーで

private void monday_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    myGrid.CommitEdit();

    // Rest of your implementation ....
}
于 2013-10-09T06:07:11.377 に答える