2012-04-03 9 views
0

私はwp7開発が初めてです。 テキストブロックを、独立したストレージのローカルデータベースを使用してローカルデータベースフィールドにバインドしようとしています。TextBlockをWp7のローカルデータベースのフィールドにバインドする

私は次のコードを使用

....

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

ここでは、フィールド名は、列、データが観測可能なコレクションにLINQ to SQLのを使用して取得されたデータベースです。

のDataContextメソッドは、リストボックスのためではなく、一人のTextBlockで動作します...

任意のアイデア..?ありがとう..!

答えて

1

テキストブロックのDataContextプロパティをバインドするオブジェクトに設定する必要があります。

field_name.DataContext = MyObjectFromDatabase 
0

直接結合しないでください。

何がやりたいことはこれです:

ビュー:

<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のプロパティをバインドできます。これを容易にするために周りのフレームワークがたくさんあります:

  1. MVVMLiteは - codeplex.com
  2. Caliburn.Microに - すべてはあなたがビューにViewModelにバインド助けるcodeplex.com

にヘルパーのスタックを提供するので、コードを少なく書くことができます。 Xamlベースのコーディングを行う場合、MVVMをコーディングする必要があります。これは、この種のテクノロジをコーディングするための「標準的な」方法です。

関連する問題