使用C#在WP7本地数据库中存储和检索复选框选定的项目

时间:2012-04-19 11:11:42

标签: c# windows-phone-7

我有105个带复选框的列表框项目。当用户选择项目时,我希望所选项目存储在WP7本地数据库中。那么,我是否需要在数据库表列中输入所有列表项?或者还有其他方法来存储它并在需要时显示所选项目吗?我正在使用C#和XAML。请帮忙!

2 个答案:

答案 0 :(得分:0)

您只能将已检查的项目存储在数据库表中,如果您再次需要它们,只需显示整个列表并检查数据库中存在的项目。

或者您可以使用IsChecked字段存储数据库中的所有项目,然后您只需在列表中读取整个表格,然后将Checkbox绑定到IsChecked字段。

答案 1 :(得分:0)

叫我一个傻瓜,但这就是我这样做的方式

// to display user selection - days is a List<DayOfWeek> as stored by you in database
foreach(var day in days)
{
    ListBoxItem lbi = new ListBoxItem();
    TextBlock tb = new TextBlock();
    tb.Text = day.ToString();

    lbi.Content = tb;
    lbi.VerticalContentAlignment = System.Windows.VerticalAlignment.Center;
    lbi.IsSelected = AlarmMod.AlarmData.SelectedDays.Contains(day);

    this.listBox.Items.Add(lbi);
}

// to store
List<DayOfWeek> iDays = new List<DayOfWeek>();

for (int i = 0; i < 7; i++)
{
    if ((this.listBox.Items[i] as ListBoxItem).IsSelected)
    {
        iDays.Add((DayOfWeek)i);
    }
}
// now you store iDays which is a List<DayOfWeek> in database.