DataGrid中使用PopupBox
1.效果图#
2.实现#
TestView.xaml
<DataGrid
ItemsSource="{Binding ItemsSource}"
CanUserAddRows="False"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding CustomerName}"
Header="客户名称"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" />
<DataGridTextColumn
Binding="{Binding City}"
Header="城市"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" />-->
<DataGridTextColumn
Binding="{Binding Contact}"
Header="联系人"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" />
<DataGridTextColumn
Binding="{Binding PhoneNum}"
Header="联系电话"
ElementStyle="{StaticResource MaterialDesignDataGridTextColumnStyle}"
EditingElementStyle="{StaticResource MaterialDesignDataGridTextColumnEditingStyle}" />
<DataGridTemplateColumn Width="80" Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<materialDesign:PopupBox DockPanel.Dock="Right">
<materialDesign:PopupBox.ToggleContent>
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Foreground="{DynamicResource PrimaryHueLightBrush}" Kind="Cog" />
<TextBlock Foreground="{DynamicResource PrimaryHueLightBrush}" Text="操作" />
</StackPanel>
</materialDesign:PopupBox.ToggleContent>
<StackPanel>
<Button Content="编辑" />
<Button Content="删除" />
</StackPanel>
</materialDesign:PopupBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
TestViewModel.cs
public class TestViewModel : BindableBase
{
public TestViewModel()
{
ItemsSource = CreateData();
}
public ObservableCollection<CustomerDto> ItemsSource { get; private set; }
public static ObservableCollection<CustomerDto> CreateData()
{
return new ObservableCollection<CustomerDto>
{
new CustomerDto(){ CustomerName="烟台一号公司",Contact="刘",PhoneNum="185"},
new CustomerDto(){ CustomerName="烟台二号公司",Contact="和",PhoneNum="185"},
new CustomerDto(){ CustomerName="烟台三号公司",Contact="刘",PhoneNum="185"}
};
}
}
CustomerDto.cs
public class CustomerDto : BindableBase
{
private string customerName;
/// <summary>
/// 客户名称
/// </summary>
public string CustomerName
{
get { return customerName; }
set { customerName = value; RaisePropertyChanged(); }
}
private string contact;
/// <summary>
/// 联系人
/// </summary>
public string Contact
{
get { return contact; }
set { contact = value; RaisePropertyChanged(); }
}
private string phoneNum;
/// <summary>
/// 联系电话
/// </summary>
public string PhoneNum
{
get { return phoneNum; }
set { phoneNum = value; RaisePropertyChanged(); }
}
}
作者:DotNeter-Hpf
出处:https://www.cnblogs.com/DotNeter-Hpf/p/16618114.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
客官,点个推荐再走可好
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律