我希望在单元加载后在代码背后修改数据网格单元的布局.
我知道我可以订阅DataGrid.Load或DataGrid.LoadingRow事件,但我希望有一种方法可以订阅特定的单个单元格的load事件,以使实现更简洁.在documentation中,似乎单元类具有事件(从FrameworkElement继承),但是我找不到干净地订阅事件的方法.
我正在使用DataGridTemplateColumn,我认为在XAML(CellTemplate)中执行此操作会很容易.
<DataGridTemplateColumn Header="ATTENDEES" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Path=attendees}" x:Name="AttendeesItemsControl"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
谢谢!
解决方法:
您可以将DataGridColumn.CellStyle与EventSetter结合使用以实现以下目的:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<EventSetter Event="Loaded" Handler="CellLoaded" />
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>
并在代码背后:
private void CellLoaded(object sender, EventArgs e)
{
var cell = (DataGridCell)sender;
...
}
标签:datagrid,wpf,xaml,c,net 来源: https://codeday.me/bug/20191112/2024071.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。