WPF的DataGrid 怎样才能即时获取列宽改变后的宽度
1个回答
2016-09-18
展开全部
方法有多种,第一种为列宽添加值改变监控
DependencyPropertyDescriptor descriptor = DependencyPropertyDescriptor.FromProperty(DataGridColumn.WidthProperty, typeof(DataGridColumn));
descriptor.AddValueChanged(dataGridDemo.Columns[0],ColumnWidth_Changed);
private void ColumnWidth_Changed(object sender, EventArgs e)
{
//值改变后触发
Console.WriteLine(((DataGridColumn)sender).Width);
}
你可以使用绑定,下面的例子就是,当拉动第一列的宽度的时候,动态显示在文本上
<DataGrid x:Name="dataGridDemo" Grid.Row="1" MaxHeight="600" MaxWidth="800" CanUserAddRows="False" AutoGenerateColumns="False" RowHeaderWidth="0" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="姓名" Width="200"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Name}" Header="姓名" Width="200"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Name}" Header="姓名" Width="200"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Age}" Header="年龄" Width="200"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Age}" Header="年龄" Width="200"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<TextBlock Grid.Row="0" Text="{Binding ElementName=dataGridDemo,Path=Columns[0].Width}"></TextBlock>
如果你想要值改变,但未还尚未生效,你就要重写元数据了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询