不要直接绑定。
你想要做的是:
看法:
<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 的属性绑定到视图中的元素。有很多框架可以使这更容易:
- MVVMLite - 在 codeplex.com 上
- Caliburn.Micro - 在 codeplex.com 上
这一切都可以帮助您将 ViewModel 绑定到 View 并提供一堆帮助程序,因此您编写的代码更少。如果您要进行任何基于 Xaml 的编码,您确实需要对 MVVM 进行编码,因为这是对此类技术进行编码的事实上的“标准”方式。