2010-07-26 5 views
1

데이터 바인딩을 위해 컨트롤을 함께 그룹화하는 컨트롤이 Silverlight에 있습니까? 예를 들어 Person 객체가 있고 TextBlocks에 fname, lname, age, height 등을 표시하려고한다고 가정합니다. 이 TextBlock 컨트롤을 함께 그룹화하고 DataGrid에서 ItemSource를 설정 한 다음 각 열을 바인딩하는 것과 비슷한 컨트롤에서 ItemSource를 설정하는 데 사용할 수있는 컨트롤이 있습니까?데이터 바인딩을 위해 다른 컨트롤을 함께 그룹화하는 Silverlight 컨트롤

이것은 당신이 결합 할 수 있도록 할

답변

0

와 리아 서비스를 사용하고 랬있어 나는이 대답 중 하나가 올바른 생각, 그러나 나는 생각하지 않는다는/앱입니다 작동합니다 내 애플 리케이션 ropriate. MVVM 접근 방식은 내 앱에 과도하게 적용되며 다른 두 가지 접근 방식은 여러 가지 이유로 나에게 적합하지 않습니다. 코드 숨김으로 모든 것을 다 할 것입니다.

0

당신은 당신이 "PersonView"과 "PersonViewModel"를 작성해야처럼 소리 MVVM http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

에이 글을 읽을 수 있습니다 (그리고 아마도 "PersonCollectionViewModel") "PersonView"(Silverlight UserControl)에서 "PersonViewModel"에 대한 컨트롤.

2

모든 레이아웃 컨트롤에서 TextBlock을 그룹화하고 컨트롤의 DataContext를 Person에 바인딩합니다. 명시 적으로 설정하지 않으면 각 TextBlock의 컨텍스트가 부모에 상대적입니다. 당신은 DATAFORM 컨트롤을 사용하여 true로 "isReadOnly의"속성을 설정할 수 있습니다

public class SomeViewModel 
{ 
    public Person ThePerson { get;set; } 
} 
+0

그러면 Grid를 Person의 특정 인스턴스에 바인딩하는 방법은 무엇입니까? – PhilBrown

+0

보기에 Person에 바인딩하고 있습니까? 방법? 어쩌면 당신이 성취하고자하는 것을 좀 더 분명히 할 수 있습니다. 재사용 가능한 컨트롤이나 바인딩을 논리적으로 구성하는 방법을 찾고 있습니까? 사람이나 소장품이 하나 뿐인가요? 가정에서 내 대답은 UserControl의 DataContext에 공용 속성 Person 있습니다. MVVM을 사용하면 해당 데이터 컨텍스트가 뷰 모델이됩니다. 더 잘 설명 할 수 있도록 코드를 업데이트했습니다. –

+0

내가 당신이 찾고있는 것을 오해했을 수도 있습니다. 이 대답은 관련 텍스트 블록에 대한 바인딩을 그룹화하는 방법을 제공합니다 (ContentTrol과 DataTemplate은 같은 방식으로 작동합니다). 캡슐화하기 위해 별도의 UserControl을 찾으려면 Ben의 답변을 살펴보십시오. Person 컬렉션이있는 경우 ListBox와 같은 ItemsControl을보고 DataTemplate을 설정하십시오. DataTemplate의 항목도 비슷하게 상대적입니다. –

0

<UserControl DataContext=""> 
    <UserControl.DataContext> 
     <SomeViewModel /> 
    </UserControl.DataContext> 
    <Grid DataContext="{Binding ThePerson}"> 
     <TextBlock Text="{Binding fname}"/> 
     <TextBlock Text="{Binding lname}"/> 
     <TextBlock Text="{Binding age}"/> 
     <TextBlock Text="{Binding height}"/> 
    </Grid> 
</UserControl> 

보기 모델 클래스는 ...,이 컨트롤은 일반적으로 데이터를 편집하고 "= AutoGenerateFields을 설정하는 것을 기억하는 데 사용 ... "진정한

PS : 나는 당신이 실버

관련 문제