如何使用绑定启用/禁用复选框的IsEnabled / IsHitTestVisible属性

时间:2012-06-13 22:10:30

标签: c# wpf binding mvvm checkbox

我正在尝试启用/禁用正在检查的复选框。我们的应用程序使用MVVM,正在使用c#WPF进行开发,而且没有代码隐藏。只是MVVM和Binding。 我正在尝试使用PropertyChanged,但没有运气。所有其他字段都可以正常工作,除了这一个。

这是我的XAML:

<ct:DataGridExtended Name="dtgProfiles" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" IsReadOnly="True" FrozenColumnCount="2" Margin="-1,23,-1,-1" SelectionMode="Single" ScrollViewer.IsDeferredScrollingEnabled="True" AutoGenerateColumns="False" ItemsSource="{Binding RightProfiles, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding RightProfilesSelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedIndex="{Binding ResourcesSelectedIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Column="4">
        <ct:DataGridExtended.Columns>
            <DataGridCheckBoxColumn Binding="{Binding Selected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  >
                <DataGridCheckBoxColumn.ElementStyle>
                    <Style TargetType="CheckBox">
                        <Setter Property="Margin" Value="3,2,1,1"/>
                        <Setter Property="IsHitTestVisible" Value="{Binding IsEditing, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
                    </Style>
                </DataGridCheckBoxColumn.ElementStyle>
            </DataGridCheckBoxColumn>
        <DataGridTextColumn Header="Nome" Binding="{Binding RightProfile.Name}" />
    </ct:DataGridExtended.Columns>
</ct:DataGridExtended>

你可以看到,我已经将IsHitTestVisible设置为我的IsEditing属性。此属性通知用户是处于编辑模式还是查看模式。我的问题是,这是唯一一个比Binding IsEditing不起作用的字段。

更准确(也许还有另一种方法):在ViewMode中,我不能让用户在我的网格中更新任何内容,包括TextBlocks和Checkbox。我可以使用IsHitTestVisible = {“Binding IsEditing}”阻止我的整个网格,但是这样,我也阻止了我的ScrollBar。并允许用户滚动此网格。

我怎么能这样做?它已经烧了我的脑袋。

由于

0 个答案:

没有答案