直接バインドしないでください。
あなたがしたいことはこれです:
見る:
<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をコーディングする必要があります。これは、このタイプのテクノロジーをコーディングするための事実上の「標準」の方法だからです。