覆盖WPF网格视图的复制过去功能

时间:2017-06-06 08:26:48

标签: c# wpf gridview override copy-paste

我有一个带有一列的WPF DataGrid:

 <DataGrid Name="myGRID">
    <DataGrid.Columns>
        <DataGridTextColumn Header="myHeader Binding="{Binding myObservableCollection}">
            <DataGridTextColumn.HeaderStyle>
                <Style TargetType="DataGridColumnHeader">
                    <Setter Property="HorizontalContentAlignment" Value="Center" />
                </Style>
            </DataGridTextColumn.HeaderStyle>
            <DataGridTextColumn.ElementStyle>
                <Style TargetType="TextBlock">
                    <Setter Property="HorizontalAlignment" Value="Center" />
                </Style>
            </DataGridTextColumn.ElementStyle>
            <DataGridTextColumn.EditingElementStyle>
                <Style TargetType="{x:Type TextBox}">
                    <EventSetter Event="TextChanged" Handler="tbx_ConcernEnter_TextChanged"/>
                </Style>
            </DataGridTextColumn.EditingElementStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

现在我想覆盖行的粘贴功能。 当我使用时:

<DataGrid>
<CommandBinding Command="Paste" Executed="CommandBinding_Executed"/>
</DataGrid>

这似乎是整个GridView的覆盖,但不是特定行的覆盖。

你知道怎么改写吗?

1 个答案:

答案 0 :(得分:2)

TextBox中的CellEditingTemplate吞下“粘贴命令。但您可以处理Loaded的{​​{1}}事件并将TextBox事件处理程序连接到它:

Pasting
<DataGridTextColumn.EditingElementStyle>
    <Style TargetType="{x:Type TextBox}">
        <EventSetter Event="TextChanged" Handler="tbx_ConcernEnter_TextChanged"/>
        <EventSetter Event="Loaded" Handler="TextBox_Loaded" />
    </Style>
</DataGridTextColumn.EditingElementStyle>