XAML ListView项目IsEnabled

时间:2012-11-14 15:14:49

标签: wpf xaml listview isenabled

我有以下XAML:

            <Grid Grid.Row="3" Margin="8,8">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>

    <!-- Setting 'UsingItems' here -->
                <CheckBox Grid.Row="0"
                    IsChecked="{Binding Path=UsingItems}" 
                    Content="{Binding Path=IncludeItemsText}" />

                <!-- This works as expected -->
                <CheckBox Grid.Row="1"
                    IsEnabled="{Binding Path=UsingItems}"/>

                <!-- This doesn't! Even though the ListView becomes enabled the Items aren't and the Checkboxes are not checkable! -->
                <ListView Grid.Row="2" IsEnabled="{Binding Path=UsingItems}"
                    VerticalAlignment="Stretch"
                    ItemsSource="{Binding Path=SortedItems}">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <DockPanel>
                                <CheckBox
                                    IsChecked="{Binding Path=.IsSelected}"
                                    Margin="0,2" Click="CheckBox_Click" />
                                <TextBlock
                                    Text="{Binding Path=.Item.ItemDescription}"
                                    Margin="4,0,0,0" 
                                    VerticalAlignment="Top">
                                </TextBlock>
                            </DockPanel>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </Grid>

如果属性'UsingItems'= false,我想禁用ListView中的所有项。 'UsingItems'是使用第0行中的Checkbox设置的,我已经确认这是通过在第1行中设置一个虚拟复选框来工作 - 'IsEnabled'属性是按预期设置的。

但是,当'UsingItems'= true时,ListView项仍保持禁用状态,即使ListView已启用(并且项目'看起来'已启用)。

我假设IsEnabled属性会过滤树 - 但这不会发生在这里。

我哪里错了?

由于

0 个答案:

没有答案