如何在Windows手机中获取以前的复选框状态

时间:2015-08-12 07:05:00

标签: c# xaml windows-phone-8 checkbox

我使用给定的xaml文件在列表框下面有一个复选框。 我的xaml文件:

<ListBox x:Name="notificationSettingsListBox" Grid.Row="1"   Margin="20,20,20,20" Background="#e79e38"  >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid Background="#055cc3" Width="500" Height="200" Margin="30,40,30,20">
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="{Binding channel_name}" Foreground="White" FontSize="31" TextAlignment="Left" TextWrapping="Wrap" Margin="0,20,10,0" />
                        <CheckBox x:Name="pushNotiOnCheckBox" Content="Enable Notification"  Checked="pushNotiOnCheckBox_Checked" Unchecked="pushNotiOnCheckBox_Unchecked"/>
                    </StackPanel>

                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

假设在我的列表框中我有5个复选框,用户只需勾选2个复选框。现在,当用户下次午餐时,它将显示之前检查过的这两个复选框的已检查状态。

如何在Windows Phone中使用这些xaml文件实现这一点?

1 个答案:

答案 0 :(得分:1)

您可以将所选值存储在设置中。此设置由系统保留,您可以通过启动应用程序来读取值:

代码示例(保存):

var settings = IsolatedStorageSettings.ApplicationSettings;

// txtInput is a TextBox defined in XAML.
if (!settings.Contains("userData"))
{
    settings.Add("userData", txtInput.Text);
}
else
{
    settings["userData"] = txtInput.Text;
}

settings.Save();

代码示例(读取):

// txtDisplay is a TextBlock defined in XAML.
if (IsolatedStorageSettings.ApplicationSettings.Contains("userData"))
{
    txtDisplay.Text = IsolatedStorageSettings.ApplicationSettings["userData"] as string;
}

更多信息:请参阅this msdn article

然后,当您启动应用程序/显示视图时:您只需要检查,在设置中检查了哪些值,然后将CheckBox标记为已选中。当复选框是动态的(不是静态的)时,你最好让ViewModel实现这一点。