2012-04-03 2 views
0

wp7 개발 초보자입니다. 텍스트 블록을 격리 된 저장소의 로컬 데이터베이스를 사용하여 로컬 데이터베이스 필드에 바인딩하려고합니다. 나는 다음 코드를 사용하십시오TextBlock을 Wp7의 로컬 데이터베이스 필드에 바인딩

....

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

여기에 필드 이름은 데이터베이스 컬럼과 데이터를 관찰 모음으로 SQL로 LINQ를 사용하여 검색됩니다.

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의 속성을 뷰의 요소에 바인딩 할 수 있습니다.

  • Caliburn.Micro codeplex.com에 - - codeplex.com에 모두 도움이
  • 가보기에 뷰 모델을 결합

    1. MVVMLite이 쉽게를 만들기 위해 주변 프레임 워크의 제비가있다 헬퍼 스택을 제공하여 적은 코드를 작성할 수 있습니다. Xaml 기반 코딩을 수행하려는 경우이 기술 유형을 코딩하는 데있어 "표준"방식 인 MVVM을 코딩해야합니다.

    관련 문제