其他分享
首页 > 其他分享> > WPF 元素代理解决MVVM模式下DataGridColumn绑定无效问题

WPF 元素代理解决MVVM模式下DataGridColumn绑定无效问题

作者:互联网

众所周知DataGridColumns不是可视化树的一部分,所以无法进行相对绑定,因此它们不连接到DataGrid

此时我们可以在父级节点进行元素代理,使用该元素的DataContext

<Grid>
  <Grid.Resources>
    <FrameworkElement x:Key="ProxyElement" DataContext="{Binding}" />
  </Grid.Resources>
  <DataGrid ItemsSource="{Binding ListItem}" >
    <DataGrid.Columns>
      <DataGridTextColumn Header="动态显示隐藏列" Visibility="{Binding DataContext.ShowDetail, Converter={StaticResource Boolean2VisibilityReConverter}, Source={StaticResource ProxyElement}}"/>
    </DataGrid.Columns>
  </DataGrid>
</Grid>

上述方法也适用于连接DataContext到Popups和ContextMenus(即未连接到可视化树的任何元素)

标签:DataContext,绑定,MVVM,DataGridColumn,元素,代理,可视化,WPF,连接
来源: https://www.cnblogs.com/Stay627/p/15117477.html