チェックされているチェックボックスを有効/無効にしようとしています。私たちのアプリケーションは 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 もブロックされます。また、ユーザーはこのグリッドをスクロールできます。
どうすればこれを行うことができますか?もう頭が火照ってます。
ありがとう