首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用可观测集合- WP8从Linq数据库绑定数据

使用可观测集合- WP8从Linq数据库绑定数据
EN

Stack Overflow用户
提问于 2015-03-10 13:01:23
回答 1查看 142关注 0票数 0

我正在使用linq将一些数据保存在数据库中。我有一个DAO类,其中我放置了我所有的CRUD方法,还有另一个类,其中我定义了我的表及其列。

代码语言:javascript
复制
[Table(Name = "CONTACTS")]
public class UserContacts
{
    private int _id;

    [Column(Name = "ID", IsPrimaryKey = true, IsDbGenerated = true, CanBeNull = false, AutoSync = AutoSync.OnInsert)]
    public int ID
    {
        get { return _id; }
        set { _id = value; }
    }

    private string _name;

    [Column(Name = "NAME", CanBeNull = false)]
    public string NAME
    {
        get { return _name; }
        set { _name = value; }
    }

    private string _number;

    [Column(Name = "NUMBER", CanBeNull = false)]
    public string NUMBER
    {
        get { return _number; }
        set { _number = value; }
    }
}

DAO类

代码语言:javascript
复制
public class DAOUserContacts
{
    public IList<UserContacts> list = new List<UserContacts>();

    public IList<UserContacts> GetData()
    {
        try
        {
            using (DataBaseContext db = new DataBaseContext(DataBaseContext.ConnectionString))
            {
                list = (from info in db.UserContacts orderby info.COLUMN_NAME ascending select info).ToList();
            }
            return list;
        }
        catch (Exception)
        {
            return null;
        }
    }

    // Other methods
}

我在LongListSelector中显示存储在这个数据库中的所有数据。

在Main.cs构造函数中

代码语言:javascript
复制
llsContacts.DataContext = new DAORUserContacts().GetData();

在Main.xaml中

代码语言:javascript
复制
<phone:LongListSelector x:Name="llsContacts" ItemsSource="{Binding}" >
    <phone:LongListSelector.ItemTemplate>
        <DataTemplate>
            <ListBoxItem local:TiltEffect.IsTiltEnabled="true">
                <Grid Margin="0" >
                    <TextBlock Text="{Binding NAME}" FontFamily="Segoe WP" FontSize="28" Margin="77,0,0,0" />
                    <TextBlock Text="{Binding NUMBER}" FontFamily="Segoe WP Light" FontSize="17" Margin="77,33,0,0"/>
                </Grid>
            </ListBoxItem>
        </DataTemplate>
    </phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>

我在互联网上做了一项研究,发现了ObservableCollection,我想使用它。我阅读这篇文章Toc261149245是为了了解它是如何工作的,但我仍然有一些疑问。

在本文中,创建了一个从INotifyPropertyChanged继承的雇员和一个从ObservableCollection继承的Emplyees。

在我的例子中,我希望我的列表(在xaml上)始终显示数据库中的内容。

可以从INotifyPropertyChanged继承我的UserContacts吗?因为这个类声明了一个表..。

我的DAOClass应该继承ObservableCollection吗?或者只有我的GetData()返回一个ObservableCollection而不是列表

另一件事..。当用户按下数据库时,有一个按钮更新数据库(搜索设备上的所有联系人,从数据库中删除在电话中删除的内容,并向数据库中添加在电话中添加的内容)。

使用ObservableCollection,当对联系人的搜索完成,并且我的数据库被更新时,应该调用一些东西来更新xaml上的LongListSelector吗?或者在数据库更新之后,LongListSelector也会自动更新?

谢谢..。

EN

回答 1

Stack Overflow用户

发布于 2015-03-10 13:49:26

用户视图模型用于在xaml端分配数据上下文和可观察集合,因为binding.And视图模型应该有可观察的集合,如果您对集合进行了任何更改,就会自动更新长列表选择器。每次您应该根据数据库的更改更改集合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28964426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档