繁体   English   中英

WPF Datagrid列可见性不适用于MultiBinding

[英]WPF Datagrid Column Visibility not working with MultiBinding

我试图使用两个布尔值来控制DataGridTextColumn的可见性。 值之一是由组合框设置的,我可以在调试器中看到booleanAllTrueConverter正确处理了布尔值。

我的问题是返回的转换器值对列可见性没有影响。 即使从转换器返回FALSE,该列也始终可见。

我会很感激所提供的任何想法。

谢谢。

<DataGrid 
    Name="myDataGrid" 
    ItemsSource="{Binding Source={StaticResource ZZZZ}}"  
    AutoGenerateColumns="False" 
    IsReadOnly="True" 
    KeyboardNavigation.TabNavigation="None"
    >
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding SomeItems}" >
            <DataGridTextColumn.Visibility>
                <MultiBinding Converter="{StaticResource booleanAllTrueConverter}">
                    <Binding 
                        Source="{StaticResource ProxyElement}" 
                        Path="DataContext.IsBlahVisible" 
                        Mode="TwoWay" 
                        UpdateSourceTrigger="PropertyChanged" 
                        />
                    <Binding 
                        Source="{StaticResource ProxyElement}" 
                        Path="DataContext.AreColumnsVisible" 
                        Mode="TwoWay" 
                        UpdateSourceTrigger="PropertyChanged"
                        />
                </MultiBinding>
            </DataGridTextColumn.Visibility>
            <DataGridTextColumn.HeaderTemplate>
                <DataTemplate>
                    <Grid HorizontalAlignment="Stretch">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="40"/>
                        </Grid.ColumnDefinitions>
                        <local:ComboBox 
                            Grid.Column="0" 
                            Width="22" 
                            Height="36" 
                            HorizontalAlignment="Right" 
                            VerticalAlignment="Center" 
                            ItemsSource="{Binding DataContext.SomeItems, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" 
                            SelectedItems="{Binding DataContext.SelectedSomeItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" 
                            ></local:ComboBox>
                        <TextBlock 
                            Text="SomeItems" 
                            Grid.Column="1" 
                            HorizontalAlignment="Left" 
                            VerticalAlignment="Center" 
                            Grid.ColumnSpan="2" 
                            Height="16" 
                            Margin="0,3" 
                            Width="37" 
                            />
                    </Grid>
                </DataTemplate>
            </DataGridTextColumn.HeaderTemplate>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

您需要在回报Visibility.Visible ,而不是true或返回Visibility.Collapsed而不是falsebooleanAllTrueConverter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM