【问题标题】:How do I create a WPF DataGrid Text + Button Column?如何创建 WPF DataGrid 文本 + 按钮列?
【发布时间】:2012-05-16 12:07:36
【问题描述】:
我希望我的数据网格中的一列同时显示文本和一个小的省略号“...”按钮 - 类似于您在 Visual Studio 属性网格中看到的内容。这是我正在尝试构建的数据网格列的模型:
当用户单击省略号按钮时,我将显示一个自定义选择器对话框,然后在列的文本部分中,显示我可以从对话框返回的逗号分隔值(即字符串)。
如何让数据网格列包含文本和按钮,就像我在这里模拟的那样?
【问题讨论】:
标签:
wpf
datagrid
datatemplate
wpfdatagrid
【解决方案1】:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.Resources>
<DataTemplate x:Key="mDataTemplate">
<Button Margin="10,10,0,0" >
<Button.Content>
<Grid x:Name="ButtonGrid" Height="Auto" HorizontalAlignment="Left" VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock />
<Ellipse />
</Grid>
</Button.Content>
</Button>
</DataTemplate>
</Grid.Resources> </Grid>
【解决方案2】:
您必须使用DataGridTemplateColumn。
示例代码:
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Your header">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<Button DockPanel.Dock="Right">...</Button>
<TextBlock Text="{Binding YourProperty}"></TextBlock>
</DockPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>