我正在尝试启用/禁用正在检查的复选框。我们的应用程序使用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。并允许用户滚动此网格。
我怎么能这样做?它已经烧了我的脑袋。
由于