1

我已经使用 MVVM 设计模式在我的 WPF 应用程序中实现了一个数据网格。数据网格的每一行都有一个组合框和一个基于组合框选择的另一个控件,一切正常。
问题是 NewItemPlaceholder(使我能够将新对象添加到 ObservableCollection 的行)默认显示 DataGrid.NewItemPlaceholder。
正如我在这里所读到的,问题是我必须为该行创建一个数据模板。在该链接中,描述了如何以编程方式进行操作。
有没有办法直接在 XAML 中完成?
先感谢您。

4

1 回答 1

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>

我使用触发器来隐藏按钮,仅在“新项目”行上。稍微聪明点,我应该能够更换整个模板,比如使用内容演示器并更改其模板或类似的东西。

于 2013-11-08T04:14:35.377 回答