

WPFにて、画面の中にタブを動的に作り、その各タブページの中には、チェックBOXを生成しています。  
生成した画面を起動し、チェックBOXにチェックを入れたタブページを切り替えたのち、元のタブページに戻るとチェックBOXのチェックが外れてしまいます。  
どうすればチェックを保持できるのか、ご教示お願い致します。

チェックBOXのCheckedイベント処理では、IsCheckedにtrueを設定してみましたが、チェックは保持されませんでした。

＜XAML抜粋＞

[code]

    <TabControl x:Name="TabControl" Margin="50,15,0,15">
        <TabControl.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Header}" FontFamily="MS Gothic"/>
            </DataTemplate>
        </TabControl.ItemTemplate>
        <TabControl.ContentTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    ～～～中略～～～
                    <ItemsControl Grid.Row="1" VerticalAlignment="Bottom" ItemsSource="{Binding TabCk}">
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <CheckBox IsChecked="{Binding IsChecked}" Checked="Checked" Unchecked="UnChecked" HorizontalAlignment="Left" d:DataContext="{Binding CheckKey}"/>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                <StackPanel Margin="35,0,0,5"/>
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                    </ItemsControl>
                </Grid>
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl>
    
[/code]

＜ソースコード抜粋＞

[code]

    /// <summary>
    /// タブとチェックBOXを作成する
    /// </summary>
    public void MakeTab()
    {   // タブとチェックBOXの作成処理
        var source = Enumerable.Range(1, TabCnt).Select(j => new CustomTabItem {
                            Header   = "Tab" + j,
                            CheckKey = "Check" + j 
                            }); 
        this.TabControl.ItemsSource = source;   // タブとチェックBOX生成
    }
    
    /// <summary>
    /// チェックイベント
    /// </summary>
    private void Checked(object sender, RoutedEventArgs e)
    {   // チェックイベント処理
        System.Windows.Controls.CheckBox chkObj = (System.Windows.Controls.CheckBox)sender;
        chkObj.IsChecked = true;                                                                        
    }
    
[/code]


CC BY-SA 4.0
2023-01-14T12:03:09.237
93335
2023-01-16T00:14:58.853
2023-01-16T00:14:58.853
56498
56498
question
wpf
タブコントロール内のチェックBOXにチェックを入れ、タブページを切り替えるとチェックが外れてしまう