私は単純なチェックボックスアイテムを持っています。アイテムが選択されていればうまく動作します。 button
にを選択してください。すべて選択された商品です。デバッグモードでは、チェックされた状態がUIに反映されていないにもかかわらず、チェックされていない状態(false)に設定されていることがわかります。ここでは、コードです:リストボックス、チェックボックスのためのユーザーインターフェイスで選択したチェックボックスをFalseに設定する - C#WPF
XAML:UncheckALLボタンの
<ListBox x:Name="Listitems" Grid.Column="0" SelectionMode="Multiple" ItemsSource="{Binding MonthlyResults}" >
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding logdate}" IsChecked="{Binding Checked ,Mode=TwoWay}" Click="CheckBox_Click"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
XAML:背後
<Button Grid.Row="0" Name="ClearALL" Margin="4,10,4,75" Content="Unselect All" FontFamily="Tahoma" FontSize="12" Click="Button_Click"/>
コード:
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
var cb = sender as CheckBox;
var item = cb.DataContext;
Listitems.SelectedItem = item;
HornerPlotPluginModel model = DataContext as HornerPlotPluginModel;
var checkedItems1 = model.MonthlyResults.Where(B => B.Checked == true);
//monthlyresults is the observable collection that populates the checkbox items
model.CDFResults.Clear(); // some function
Chart1.Series.Clear();
Chart1.Axes.Clear();
model.DisplayLogs(); // some function
DrawCurves(); // some function
}
背後にあるコードアンチェクカルボタン:
private void Button_Click(object sender, RoutedEventArgs e)
{
HornerPlotPluginModel model = DataContext as HornerPlotPluginModel;
var checkedItems1 = model.MonthlyResults.Where(B => B.Checked == true);
Listitems.SelectedItems.Clear(); //SET CHECKED ITEMS TO FALSE!!!
model.CDFResults.Clear();
Chart1.Series.Clear();
}
私はここで同様のポストを見てみました:WPF UserControl property change not updating が、それは私の頭の上に行ってきました!
観察可能なコレクションはクリアされますが、UIは更新されません。私は前に同じことを試みた。 – user7157732
UpdateSourceTrigger = "PropertyChanged"を使用していますか? –