我有一个wpf应用程序。
我希望应用程序中的所有数据网格都有一组按钮。
尝试使用装饰器和装饰器但没有成功(dataGrid停止显示行)
有什么建议吗?
答案 0 :(得分:1)
鉴于您希望在工具箱按钮后面具有功能(我假设它需要对网格的引用),为此继承HeaderedContentControl可能是有意义的。这意味着您可以在控件中添加任何内容,但是可以覆盖元数据以为此添加验证。
任何地方,这里是xaml:
<!-- ToolBoxGridControl.xaml -->
<HeaderedContentControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication3.ToolBoxGridControl">
<HeaderedContentControl.Header>
<StackPanel Orientation="Horizontal">
<Button/>
<Button/>
<Button/>
</StackPanel>
</HeaderedContentControl.Header>
<HeaderedContentControl.Template>
<ControlTemplate TargetType="HeaderedContentControl">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<ContentControl Grid.Row="0" Content="{TemplateBinding Header}"/>
<ContentControl Grid.Row="1" Content="{TemplateBinding Content}"/>
</Grid>
</ControlTemplate>
</HeaderedContentControl.Template>
</HeaderedContentControl>
简单的代码隐藏(可以放置工具箱实现)。
public partial class ToolBoxGridControl : HeaderedContentControl
{
private DataGrid DataGrid { get { return (DataGrid)Content; } }
public ToolBoxGridControl()
{
this.InitializeComponent();
}
}
要实际使用,您只需使用数据网格将以下内容添加到XAML
即可<local:ToolBoxGridControl>
<DataGrid/>
</local:ToolBoxGridControl>