WPF以资源的形式定义ListView的列并控制显示

1、以资源的形式定义列

2、根据配置或用户需要,将列添加到ListView中

xaml:

<UserControl.Resources>
	<GridViewColumn x:Key="SerialNumber"
					Width="2"
					Header="序号">
		<GridViewColumn.CellTemplate>
			<DataTemplate>
				<TextBlock HorizontalAlignment="Center"
						   VerticalAlignment="Center"
						   Text="{Binding SerialNumber, Mode=TwoWay}"
						   TextWrapping="Wrap" />
			</DataTemplate>
		</GridViewColumn.CellTemplate>
	</GridViewColumn>
	<GridViewColumn x:Key="Name"
					Width="2"
                    Header="名称">
					<!-- content-->
	</GridViewColumn>
	...
</UserControl.Resources>

<ListView x:Name="LvData" />

.xaml.cs

private async void DataManager_Loaded(object sender, RoutedEventArgs e)
{
    var heads = await GetUserTableHeadDisplay();
    var allWidthPercent = heads.Sum(x => x.WidthPercent);
    ((GridView)LvData.View)?.Columns.Clear();
    var newColumn = new GridView();
    foreach (var head in heads)
    {
	    var col = Resources[head.ColumnHeadCode] as GridViewColumn;
	    col.Width = (this.ActualWidth / allWidthPercent) * head.WidthPercent;
	    newColumn.Columns.Add(col);
    }

    LvData.View = newColumn;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值