WPF 元素代理解決MVVM模式下DataGridColumn綁定無效問題

衆所周知DataGridColumns不是可視化樹的一部分,因此沒法進行相對綁定,所以它們不鏈接到DataGrid代理

此時咱們能夠在父級節點進行元素代理,使用該元素的DataContextcode

<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(即未鏈接到可視化樹的任何元素)xml

相關文章
相關標籤/搜索