2011-01-16 3 views
1

이것은... 실버 WP7

public ObservableCollection<BuddyConnectFriendService.FriendStructure> 
    FriendList { get; set; } // I want to bind this to my listbox 


public Friends() //this is constructor 
    { 
     InitializeComponent(); 
     this.DataContext = this; //I think this is what I'm doing is right....:) 
    } 


<ListBox Height="523" HorizontalAlignment="Left" Margin="0,6,0,0" Name="friendListBox" VerticalAlignment="Top" Width="450"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Name="friendListboxDataItemStackPanel" Orientation="Vertical"> 
         <TextBlock Name="friendUsername" FontSize="28" /> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

가 어떻게 내 FriendListListBox에 결합 할 내 코드 숨김입니까? FriendListuser.UserName이라는 속성을 TextBlock "friendUsername"에 표시하려고합니다.

답변

4

나는 다음과 같은 생성자를 변경할 것 :

public Friends() //this is constructor 
{ 
    InitializeComponent();   
    this.DataContext = this.FriendList; 
} 

이 같은 DataTemplate을 사용 :

<ListBox ItemsSource="{Binding}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       ... 
       <TextBlock Text="{Binding user.UserName}"/> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
+2

을 사용 자신의 대답에 덧글을 추가하는 것이 아닙니다. 주석을 사용하여 다른 사람들이 작성한 주석에 응답하십시오. (@nameOfCommenterBeingRepliedto를 사용하여 주석 앞에 붙이십시오.) – AnthonyWJones

0

ERNO의 대답은 벌금과 유효합니다. 당신의 방법을 사용하여 그것을 얻는 또 다른 방법이 있습니다.

Page/UserControl에 이름을 지정하면 (예 : 루트 요소에 Name = "MyPage"특성 부여)

그럼 당신은 할 수 있습니다 : 작업을해야

<ListBox ItemsSource="{Binding MyPage.FriendList}"> 

합니다.

그러나, 나는 뷰 모델로 FriendList 속성을 배치하고이 때 단지 기존의 대답을 편집 생각한 더 조언을 추가 약자로이 좋은 답변입니다 페이지의 DataContext로 해당 뷰 모델/UserControl을