方法有多种,第一种为列宽添加值改变监控
DependencyPropertyDescriptor descriptor = DependencyPropertyDescriptorFromProperty(DataGridColumnWidthProperty, typeof(DataGridColumn));descriptorAddValueChanged(dataGridDemoColumns[0],ColumnWidth_Changed);
private void ColumnWidth_Changed(object sender, EventArgs e)
{
//值改变后触发
ConsoleWriteLine(((DataGridColumn)sender)Width);
}
你可以使用绑定,下面的例子就是,当拉动第一列的宽度的时候,动态显示在文本上
<DataGrid x:Name="dataGridDemo" GridRow="1" MaxHeight="600" MaxWidth="800" CanUserAddRows="False" AutoGenerateColumns="False" RowHeaderWidth="0" ><DataGridColumns>
<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>
</DataGridColumns>
</DataGrid>
<TextBlock GridRow="0" Text="{Binding ElementName=dataGridDemo,Path=Columns[0]Width}"></TextBlock>
如果你想要值改变,但未还尚未生效,你就要重写元数据了
给您的DataGrid设置一个Name属性 比如说(dataGrid)
那么你可以直接使用该Name属性访问的DataGrid控件
例如:MyWindowMyUserControldataGrid
通过DataGridSelectedItem 可以获取 选中的行
datagridrowbackground不需要获取行后才能设置的,比如你在trigger设置。
<Style TargetType="DataGridRow">
<StyleTriggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Yellow"/>
</Trigger>
</StyleTriggers>
</Style>
再者,通过SelectionChanged获取datagridrow对象可以这么写(dg为DataGrid名称,t为你选中的实体对象)
private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
TestDemo t = dgSelectedItem as TestDemo;
if (t != null)
{
DataGridRow dr = (DataGridRow)(dgItemContainerGeneratorContainerFromItem(t));
drBackground = new SolidColorBrush(ColorsYellow);
}
}
那就通过ContentPresente获取呗~不一定非要取到TextBlock嘛
首行你要确定你的控件是在dgListColumns[0]位置
DataRowView DRV = (eEditingElement as SystemWindowsControlsContentPresente)Content as DataRowView;
rowView["ARVDAT"] = ConvertToDateTime(DRVRow[0]ToString());
问题如题。就是我编辑某个单元格然后编辑好了后,再获取编辑单元格所在行的某个列的值。把这2个值合在一起组成一个数组。大体这样子。有人知道怎么获取值么wpf datagrid 如何获取选中单元格所在行的某列的值问题如题。就是我编辑某个单元格然后编辑好了后,再获取编辑单元格所在行的某个列的值。把这2个值合在一起组成一个数
以上就是关于WPF的DataGrid 怎样才能即时获取列宽改变后的宽度全部的内容,包括:WPF的DataGrid 怎样才能即时获取列宽改变后的宽度、WPF 主窗口放了一个用户控件UserMainUserControl里面是一个DataGrid如何在主窗口中得到DataGrid选中的项、请问WPF DataGrid SelectionChanged事件中怎么获取行啊dataGridRow.Background好像只有获取行后才设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)