在UserControls之间共享数据的最佳实践

时间:2018-11-08 22:54:11

标签: c# wpf

TLDR:

基本上,我想知道何时在嵌入式UserControl中选中了CheckBox。

问题:

我有一个用于应用程序设置的UserControl。设置UserControl上有属于自己的单独UserControl的部分(硬件设置,网络设置等)。

设置UserControl的每个部分都有一个ListBox,还有一个网格,当单击该网格时可以显示每个节的UserControl:

<ListBox x:Name="SettingsListBox" SelectionChanged="SettingsListBox_SelectionChanged">
    <ListBoxItem>Hardware</ListBoxItem>
    <ListBoxItem>Network</ListBoxItem
</ListBox>

<Grid x:Name="SettingsSectionGrid" />

我这样分配每个部分:

private void SettingsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) {
    // Clear the grid
    SettingsSectionGrid.Children.Clear();

    switch (SettingsListBox.SelectedIndex) {
        // Hardware
        case 0:
            SettingsSectionGrid.Children.Add(new HardwareSection());
            break;
        // Network
        case 0:
            SettingsSectionGrid.Children.Add(new NetworkSection());
            break;
        // Hardware by default
        default:
            SettingsSectionGrid.Children.Add(new HardwareSection());
            break;
    }
}

问题在于,如果您单击另一部分,它将不记得上一部分的设置,而我需要容纳该部分UserControls的主UserControl才能知道输入的数据。

创建这样的东西的最佳实践是什么,如何让UserControl的设置与UserControls部分通信?

例如,如果用户在“网络”部分中输入IP地址,则我需要设置UserControl能够知道要保存的信息,并在用户返回该部分时再次显示。

谢谢!

0 个答案:

没有答案