ユーザーが何度でも開閉できるポップアップウィンドウがあります。ウィンドウには、チェックされた値がバインドされた4つのチェックボックスがあります。ユーザーがボックスのチェックを外してからウィンドウを閉じると、次に開いたときにチェックが外されたままになるという考え方です。チェックされていないチェックボックスがある場合にウィンドウが開いたら、いくつかの作業を行う必要があります。私の問題は、WindowLoadedEventのコードビハインドで、チェックボックスの値を取得して、最初に何らかの作業を行う必要があるかどうかを確認しようとすることです。ウィンドウにすべてのチェックボックスが表示されていても、ウィンドウがロードされるたびに、すべてのチェックボックスのすべてのisChecked値がfalseになります。
探している値を取得する方法がわかりません。.net4.0を使用しています。
<StackPanel x:Name="panelVisibilities">
<CheckBox x:Name="crossCorrelationViewCheck"
IsChecked="{Binding Path=Processor.CrossCorrelation.IsCrossCorrelationVisible}"
Click="GraphVisibilityClickEvent"
HorizontalAlignment="Left"/>
...etc
private void WindowLoadedEvent(object sender, RoutedEventArgs e)
{
IEnumerable<CheckBox> elements = this.panelVisibilities.Children.OfType<CheckBox>().ToList();
foreach (CheckBox uiElement in elements)
{
bool isChecked = uiElement.DataContext;
if (isChecked == false)
{
//do work
}
}
}
編集:それを説明するためのより良い方法は、チェックボックスがあるかもしれません。IsCheckedはモデルにバインドされていますが、ウィンドウが表示されたときに背後のxamlコードからその状態を確認したいと思います。
どんな助けでもいただければ幸いです。
前もって感謝します。