直接結合しないでください。
何がやりたいことはこれです:
ビュー:
<TextBlock x:Name="field_name" TextWrapping="Wrap" Text="{Binding fieldName}">
</TextBlock>
のviewmodel:
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に - すべてはあなたがビューにViewModelにバインド助けるcodeplex.com
にヘルパーのスタックを提供するので、コードを少なく書くことができます。 Xamlベースのコーディングを行う場合、MVVMをコーディングする必要があります。これは、この種のテクノロジをコーディングするための「標準的な」方法です。