将TextBlock绑定到Wp7中的本地数据库中的字段

时间:2012-04-03 19:43:30

标签: windows-phone-7 windows-phone

我是wp7开发的新手。 我正在尝试使用独立存储的本地数据库将 Textblock 绑定到本地数据库字段。

我使用以下代码......

<TextBlock x:Name="field_name" TextWrapping="Wrap" Text="{Binding fieldName}">
</TextBlock>

此处字段名称是数据库列,使用LINQ to SQL将数据检索到可观察的集合中。

datacontext方法适用于列表框,但不适用于单独的TextBlock ...

任何想法..?感谢..!

2 个答案:

答案 0 :(得分:1)

您必须将textblock的DataContext属性设置为应绑定到的对象。

field_name.DataContext = MyObjectFromDatabase

答案 1 :(得分:0)

不要直接绑定。

你想要做的是:

视图:

<TextBlock x:Name="field_name" TextWrapping="Wrap" Text="{Binding fieldName}">
</TextBlock>

视图模型:

public class ViewModel:INotifyPropertyChanged
{

public ViewModel()
{
//Load DB and set the fieldName property here
}
public string FieldName
{
get{return _fieldName;}
set{_fieldName=value;
   OnPropertyChanged("FieldName");
}

protected void OnPropertyChanged(string propertyName)
{
    if(PropertyChanged!=null)
        PropertyChanged(this,new PropertyChangedEventArgs(propertyName));
}
public event public event PropertyChangedEventHandler PropertyChanged;

}

这就是MVVM(ModelViewViewModel)。 ViewModel绑定到视图的DataContext,然后您可以将ViewModel的属性绑定到视图中的元素。有很多框架可以使这更容易:

  1. MVVMLite - 在codeplex.com上
  2. Caliburn.Micro - 在codeplex.com上
  3. 这一切都有助于您将ViewModel绑定到View并提供一堆帮助程序,以便您编写更少的代码。如果您要进行任何基于Xaml的编码,您确实需要编写MVVM,因为这是编写此类技术的事实“标准”方法。