在源中添加项目时,Grid DataContextChanged未触发

本文关键字:DataContextChanged Grid 添加 项目 | 更新日期: 2023-09-27 18:17:45

我在用户控件中有一个网格,并分配了一个数据上下文

<Grid x:Name="GrdContainer" DataContext="{Binding FormAttributeMappings,Mode= TwoWay}"  DataContextChanged="GrdContainer_DataContextChanged" UseLayoutRounding="True">
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="5"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="10"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="5"/>
</Grid.ColumnDefinitions>
private void GrdContainer_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    ......
}

当我分配List<FormAttributeMapping> FormAttributeMappings作为数据上下文时,GrdContainer_DataContextChanged将是火,但是当我在网格数据上下文源(FormAttributeMappings.add(FormAttributeMapping))中添加一些项目时,GrdContainer_DataContextChanged不火

在源中添加项目时,Grid DataContextChanged未触发

添加项目到List不会触发DataContextChanged事件,因为它不会改变DataContext属性。要触发事件,您必须在每次添加新项目时传递/更改FormAttributeMappings属性。

更好的解决方案是将' formattributemapping '属性类型更改为ObservableCollection,并为CollectionChanged事件创建处理程序。

相关文章:
  • 没有找到相关文章