在另一个窗口中访问公共 ObservableCollection

问题描述

我在 BoolStringClass 中定义了一个公共类 MainWindow.xaml.cs

public class BoolStringClass
{
    public string OptionName { get; set; }
    public bool IsSelected { get; set; }
}

我使用这个类在 ObservableCollection 中定义一个 MainWindow.xaml.cs

public ObservableCollection<BoolStringClass> BoolStringList { get; set; }

点击按钮后,新行会添加BoolStringList 中的 private void

private void ButtonClick(object sender,RoutedEventArgs e)
{
    bool boolkeyvalue = true;
    BoolStringList.Add(new BoolStringClass() { IsSelected = boolkeyvalue,OptionName = "BingWeather" });
    BoolStringList.Add(new BoolStringClass() { IsSelected = boolkeyvalue,OptionName = "Cortana" });
}

BoolStringList 用于在 CheckBox 中的 ListBox 中动态创建 MainWindow.xaml效果很好 (image of MainWindow working correctly):

<ListBox ItemsSource="{Binding BoolStringList}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <CheckBox IsChecked="{Binding IsSelected}" Content="{Binding OptionName}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

一个新窗口 SecondWindow 被创建并可以通过在 private void 中点击 MainWindow 按钮打开,并将上面的 ListBox 添加SecondWindow.xaml,其中在向 BoolStringList (image of SecondWindow not displaying correctly) 添加数据之前或之后,列表框不显示复选框。

SecondWindow.xaml 如何访问 ObservableCollection 中定义的名为 BoolStringListMainWindow.xaml.cs

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)