使用DatagridTemplateColumn设计声明DataGridRow事件处理程序?

时间:2013-11-29 21:37:01

标签: wpf xaml datagrid

我正在寻找以下信息:我想在我的datagrid的xaml中声明DataGridRow元素的事件处理程序。通过这种方式,我可以区分使用NewItemPlaceHolder项目点击行并单独处理它。

但我真的不知道如何将其插入到xaml中,其中我的datagrid内容是使用DataGridTemplateColumns定义的。谢谢你的提示。

<DataGrid [...]>
        <DataGrid.Resources>
            <DataTemplate x:Key="IsEditingTemplate">
                [...]
            </DataTemplate>               
        </DataGrid.Resources>
            <DataGrid.Columns>
                <DataGridTemplateColumn [...]>
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        [...]
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
            </DataGridTemplateColumn>
[...]

编辑:我找到了以下内容,但已经为我的数据网格提供了一个RowStyle属性:

RowStyle="{StaticResource DataGridRowSpecialAdresse}"

如何使用“和datagrid行默认样式为XXX”来增强以下代码?

<DataGrid.RowStyle>
   <Style TargetType="{x:Type DataGridRow}">
     <EventSetter Event="MouseLeftButtonDown" Handler="AdressesMouseLeftButtonDown"/>
   </Style>
</DataGrid.RowStyle>

1 个答案:

答案 0 :(得分:1)

据我了解,您希望为现有的Style for DataGridRow添加功能, 所以只需创建一个新样式,并使用Style的BaseOn属性派生出来。

 <DataGrid.RowStyle>
    <Style TargetType="{x:Type DataGridRow}" BaseOn="{StaticResource DataGridRowSpecialAdresse}">
       <EventSetter Event="MouseLeftButtonDown" Handler="AdressesMouseLeftButtonDown"/>
    </Style>
</DataGrid.RowStyle>