我是wp7开发的新手。 我正在尝试使用独立存储的本地数据库将 Textblock 绑定到本地数据库字段。
我使用以下代码......
<TextBlock x:Name="field_name" TextWrapping="Wrap" Text="{Binding fieldName}">
</TextBlock>
此处字段名称是数据库列,使用LINQ to SQL将数据检索到可观察的集合中。
datacontext方法适用于列表框,但不适用于单独的TextBlock ...
任何想法..?感谢..!
答案 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的属性绑定到视图中的元素。有很多框架可以使这更容易:
这一切都有助于您将ViewModel绑定到View并提供一堆帮助程序,以便您编写更少的代码。如果您要进行任何基于Xaml的编码,您确实需要编写MVVM,因为这是编写此类技术的事实“标准”方法。