DataGridでチェックされている連絡先にのみSMSを送信する必要があるWPFアプリケーションを開発しています。マウスのスクロールでWPF DataGridのチェックボックスの自動チェックとチェックを外す
DataGridで目的の連絡先を確認した後、下にスクロールすると問題が発生します。 DataGridのチェックボックスのチェックされたプロパティは、ランダムに変更されます。
私は、次のプロパティを追加することを提案いくつかの解決策に出くわした:
- VirtualizingStackPanel.VirtualizationMode DataGrid内=データグリッド で「標準」
- VirtualizingStackPanel.IsVirtualizing =「真」(私はそれを設定すると、 falseの場合、アプリケーションは)バインディングチェックボックスに
- UpdateSourceTrigger = "にPropertyChangedを" 完全に応答しなくなっ
- EnableRowVirtualization DataGrid内= "真"
- EnableColumnVirtualization = DataGridの "True"
私はそれらを試しましたが、どれもうまくいきませんでした。
XAML:
<StackPanel Orientation="Horizontal">
<DataGrid x:Name="smsgrid" VirtualizingStackPanel.VirtualizationMode="Standard" VirtualizingStackPanel.IsVirtualizing="True" Margin="10,20,0,10" AutoGenerateColumns="False" IsReadOnly="True" CanUserResizeColumns="False" CanUserReorderColumns="False" CanUserSortColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="chkbox" Checked="chkbox_Checked" Unchecked="chkbox_Checked"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="ID" Binding="{Binding ID}"></DataGridTextColumn>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn Header="Mobile no." Binding="{Binding Mobile1}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
...
<StackPanel>
Iは水平にログインページ(上記XAMLに貼り付けられていない)と、対応するチェックボックスが選択された場合に携帯電話番号を格納するためのリストを積層するのStackPanelを使用しています。また、チェックボックスのcheckedプロパティの値が変更されると、Listの値は変更されないことにも注意してください。
DataGridのチェックボックスを自動的にチェックしたりチェックを外したりすることを避けるための解決策が得られれば、本当にうれしいでしょう。
ありがとうございました!
これを試しました。しかし、それは動作しません。チェックボックスはマウスのスクロールでも自動的にチェック/チェックされません。 – ManuM