如何为datagrid NewItemPlaceholder行添加模板?

时间:2013-09-20 11:27:50

标签: c# wpf xaml mvvm datagrid

我已经使用MVVM设计模式在我的WPF应用程序中实现了一个数据网格。 数据网格的每一行都有一个组合框和一个基于组合框选择的另一个控件,一切正常。
问题是默认情况下NewItemPlaceholder(允许我向ObservableCollection添加新对象的行)显示DataGrid.NewItemPlaceholder。
我读过here时遇到的问题是我必须为该行创建一个datatemplate。并在该链接中描述了如何以编程方式执行此操作。
有没有办法在XAML中直接执行此操作?
提前谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

    <DataGrid.RowHeaderTemplate>
            <DataTemplate>
                <buttons:CloseButton x:Name="CloseButton"/>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
                                  AncestorType={x:Type DataGridRow}}, 
                                  Path=IsNewItem}" Value="True">
                        <Setter TargetName="CloseButton" Property="Visibility" Value="Collapsed"></Setter>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </DataGrid.RowHeaderTemplate>

我使用触发器隐藏按钮,仅在New Item行上。凭借一点点聪明才智,我应该能够换掉整个模板,比如使用内容展示器并更改其模板或类似内容。