2011-11-08 4 views
1
나는 두 목록 모음에서 목록 상자의 데이터를 바인딩 할

, 여기데이터 바인딩은 수집

public List<TipSync.TipCategories> tipCategories; 

    public List<TipSync.TipCategories> TipCategories 
    { 
     get 
     { 
      return tipCategories; 
     } 
     set 
     { 
      tipCategories = value; 
      NotifyPropertyChanged("TipCategories"); 
     } 
    } 

    public List<TipSync.CategorySubscribed> categorySubscribed; 

    public List<TipSync.CategorySunscribed> CategorySubscribed 
    { 
     get 
     { 
      return tips; 
     } 
     set 
     { 
      categorySubscribed = value; 
      NotifyPropertyChanged("Tips"); 
     } 
    } 

내가이 아래 줄로 나는이 목록을 내 scnerio

입니다 TextBlock의 버튼 및리스트 박스는 listbox.itemsource 이제 CategorySubscribed리스트의 값을 갖는 항목을 포함하는 경우

<ListBox x:Name="TipCategoriesLB" Height="449" HorizontalAlignment="Left" Margin="5,49,0,0" VerticalAlignment="Top" Width="410" SelectionChanged="TipCategoriesLB_SelectionChanged"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <StackPanel Orientation="Horizontal"> 
           <TextBlock Text="{Binding CategoryName}"/> 
           <Button Name="SubscribeBtn" Content="" Tap="Subscribe_Tap"/> 
          </StackPanel> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 

Tipcategories

로 설정된, 버튼의 내용에 " Subscribed"을 표시하고 싶습니다. 그렇지 않은 경우 Unsubscribed입니다. 어떻게해야합니까?

답변

2

Nawaz,

정확하지 않은 답변입니다. 참고로 TipCategories 목록에있는 각 개체에 깃발을 추가하는 것만으로 구독 여부를 알 수있는 것은 아닌 이유는 무엇입니까? 구독/가입 취소가 발생하면 각 범주의 코드에서이를 조작 할 수 있습니다. 이러한 기술의 장점은 데이터 바인딩이 더 쉽다는 것입니다. Button의 Content 속성을이 플래그에 바인딩하여 버튼이 다른 것을 말하도록 할 수 있습니다. &은 사용자가 클릭하면 적절한 조치를 취합니다.

어떻게 생각하세요?

감사합니다.

+0

본인은 이것이 최선의 방법이라고 동의합니다. 또는이 속성을 추가하고 두 개의 다른 목록을 결합하여 목록을 만드는 새 개체를 만듭니다. – Bryant

+1

+1 : "모델"은 단지 그 작업에 적합하지 않습니다. UI 구현을보다 쉽게하기 위해 "ViewModel"적응이 보장됩니다. – AnthonyWJones