1

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

どうすればこれを行うことができますか?もう頭が火照ってます。

ありがとう

4

0 に答える 0