2011-03-02 5 views
0

임은이 문제를 정리하고 당신을 위해 너무 me..hopefully하는 것이 합리적 예에 넣어 것 ... 실버 ItemsControl에와 콤보

그래서이 항목 컨트롤이 말할 수 있습니다. 이 컨트롤은 NBA Basketball 팀 (Lakers, Heat, Knicks ... 등)의 관찰 가능한 컬렉션에 바인딩됩니다. 이 관찰 가능한 NBATeams 컬렉션에는 FavoritePlayer 속성이 있습니다. 이게 어떻게 Items Control 내부를 볼 것인가를 설명하는 datatemplate이 있습니다. 팀 이름을 표시하는 텍스트 상자가 있습니다. (이것은/읽을 수 있어야합니다. 지금은 안됩니다.)하지만 팀 이름을 표시합니다 .. LA Lakers. 내 항목 컨트롤의 두 번째 항목은 콤보 상자입니다. 이 콤보 상자에는 궁극적으로 각 팀에 내가 좋아하는 플레이어가 표시됩니다.

콤보 상자의 itemssource는 내가 가지고있는 조회 값입니다. 팀의 모든 사람들을 표시하고이 콤보 박스의 displaymemberpath는 "DisplayText"입니다 ...이 콤보 박스에서 선택한 항목이 표시되어야합니다. 그래서 내가 가장 좋아하는 플레이어가 Kobe Bryant라면 콤보 상자에 이것을 표시해야합니다.

<telerik:RadComboBox Grid.Row="0" Grid.Column="9" Width="150" EmptyText="--Select Player--" 
ItemsSource="{Binding PlayerList}" 
SelectedItem="{Binding FavoritePlayer, Mode=TwoWay}" 
DisplayMemberPath="DisplayText" HorizontalAlignment="Left"></telerik:RadComboBox> 

항목이 내 목록 상자의 외부에 거주 내 콤보를 결합하는 항목을 선택했는지 사용하는 목록 상자 내에서 선택 될 때 그때 목록 상자에서 방금 가진 textblocks에 사용하고있다. 이제 실제로 목록 상자 (ItemsControl)에 콤보 상자가 있습니다. 그래서 임은 ItemsControl 내에서 콤보 박스를 바인딩하는 가장 좋은 방법을 궁금합니다.

처음에는 플레이어가 콤보 상자에 나타나게하는 데 문제가있었습니다. 아래 코드를 수행하여 문제를 해결했습니다.

항목 컨트롤 내에서 항목 소스를 콤보 상자에 바인딩하는 첫 번째 문제점을 발견했습니다.

이렇게 보이도록 바인딩을 설정해야했습니다.

ItemsSource="{Binding DataContext.PlayerList, ElementName=ItemsControlNBATeams}" 

는 그래서 DataContext.PlayerList = 항목에 제어의 이름을 설정하고, 소자 그 이름을 사용하여 경로를 설정했다. 이제는 내 콤보 상자의 항목을 가져옵니다. 왜 내 콤보 상자의 selecteditem이 설정되어 있지 않습니다.

+0

수 당신 문구 질문을 조금 더 명확? – foson

+0

질문을 정리했습니다. 감사합니다. – gevjen

답변

0

되지 않음에 대해 매우 분명 당신의 질문 당신이 물어하지만 대답 않습니다

<ListBox ItemsSource="{Binding}" x:Name="ListBox1"></ListBox> 
    <TextBox Text="{Binding SelectedItem, ElementName=ListBox1}"> </TextBox> 
+0

No..I ItemsControl..with ItemsSource of NBA Basketball Teams을 말하면 하나의 텍스트 상자에 Lakers, Celtics ..라는 팀 이름이 표시됩니다. 충분히 쉽습니다. 하지만이 itemsControl에 콤보 박스가 있다고 말하면이 콤보 박스에는 숫자 (10 ~ 60)의 소스가 있으며이 번호가 이기기 위해 필요합니다 ... 레이커스가 60 일 경우 콤보 박스에서 60 .. – gevjen