2011-11-08 38 views
1

我想結合來自兩個列表收藏列表框的數據,這是我的scnerio數據綁定從兩個列表收集

我有兩個列表,下面給出

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"); 
     } 
    } 

,我有一個文本塊和一個按鈕列表框,listbox.itemsource設置爲Tipcategories

<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> 

現在,如果CategorySubscribed列表包含與值的項目,我想在按鈕的內容中顯示「Subscribed」,否則Unsubscribed。我該怎麼做呢?

回答

2

納瓦茲,

不完全是你要找的答案;但是lemme問你這個問題。爲什麼不直接向TipCategories列表中的每個對象添加一個標誌,表示它是否已訂閱?當訂閱/取消訂閱發生時,這可以在每個類別的代碼中操縱。這種技術的優點是數據綁定更簡單..您可以將Button的Content屬性綁定到此標誌,以使按鈕說明一件事,而其他&如果用戶點擊它,則採取適當的措施。

你對此有何感想?

謝謝!

+0

我同意這將是最好的方法。或者只是創建一個新的對象,添加此屬性並通過組合其他兩個列表來創建列表。 – Bryant

+1

+1:現在的「模型」並不適合這項任務。保證「ViewModel」的適應性,使UI實現更容易。 – AnthonyWJones