2012-04-03 45 views
0

我是wp7開發新手。 我正嘗試使用獨立存儲的本地數據庫將文本塊綁定到本地數據庫字段。將TextBlock綁定到Wp7中的本地數據庫中的字段

我用下面的代碼....

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

這裏字段名是數據庫列,數據使用LINQ到SQL爲觀察的集合檢索。

DataContext的方法適用於列表框,但沒有單獨的TextBlock ...

任何想法..?謝謝..!

回答

1

您必須將文本塊的DataContext屬性設置爲它應該綁定到的對象。

field_name.DataContext = MyObjectFromDatabase 
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的屬性綁定到視圖中的元素。有很多周圍的框架,以使它更容易些:

  1. MVVMLite - 上codeplex.com
  2. Caliburn.Micro - 上codeplex.com

所有幫你綁定視圖模型到視圖並提供一堆幫助程序,以便您編寫較少的代碼。如果你打算做任何基於Xaml的編碼,你確實需要對MVVM進行編碼,因爲這是編碼這種類型技術的事實上的「標準」方式。

相關問題