2011-04-06 114 views
0

我試圖將我的ListBox綁定到我的ViewModel的選擇,因爲我在一個樞軸中有多個ListBox並且我不想輸出每個屬性的整個頁面。爲了說明我的問題,這裏有一個小樣本:綁定到ViewModel的選擇

XAML:

<DataTemplate x:Key="PropertyTemplate"> 
     <StackPanel> 
      <TextBlock Text="{Binding Label}" /> 
      <TextBlock Text="{Binding Value}" /> 
     </StackPanel> 
    </DataTemplate> 

    <controls:Pivot> 
     <controls:PivotItem> 
      <ListBox ItemsSource="{Binding PropertySelectionOne}" ItemTemplate="{StaticResource PropertyTemplate}" /> 
     </controls:PivotItem> 

     <controls:PivotItem> 
      <ListBox ItemsSource="{Binding PropertySelectionTwo}" ItemTemplate="{StaticResource PropertyTemplate}" /> 
     </controls:PivotItem> 
    </controls:Pivot> 

視圖模型:

public class SomeViewModel 
{ 
    private Property _propOne; 
    public Property PropOne 
    { 
     get { return _propOne; } 
     set { _propOne = value; NotifyPropertyChanged("PropOne"); } 
    } 
    private Property _propTwo; 
    public Property PropTwo 
    { 
     get { return _propTwo; } 
     set { _propTwo = value; NotifyPropertyChanged("PropTwo"); } 
    } 
    private Property _propThree; 
    public Property PropThree 
    { 
     get { return _propThree; } 
     set { _propThree = value; NotifyPropertyChanged("PropThree"); } 
    } 
} 

所以基本上我想我的列表框綁定到PropertySelectionOnePropertySelectionTwo,這將包含對引用我的ViewModel中的屬性選擇。例如,PropertySelectionOne可以包括PropOnePropTwoPropertySelectionTwo可以包括PropTwoPropThree

有沒有簡單的方法來將這些屬性「分組」到一個新的屬性來綁定而不改變我的應用程序的體系結構?從不同的列表框中相同日期類型顯示

感謝

+0

創建一個ObservableCollection 。並添加PropOne和PropTwo。然後將ObservableCollection綁定到列表框的itemssource。 – 2011-04-06 11:49:49

+0

埃文,我真的嘗試過,但它似乎收集有正確數量的項目,但它們始終爲空。我這樣做的方式只是'ObservableCollection PropertyCollection;'和在構造函數中'PropertyCollection = new ObservableCollection {PropOne,PropTwo}' – RajenK 2011-04-06 12:47:18

回答

0

如果你有不同的屬性,那麼可以說你需要分割你的瀏覽模式,但你說你不想改變您的應用程序的架構,這是您的選擇。

因此,您需要做的是爲每個ListBox提供不同的ItemTemplate,該列表定義了哪些屬性以及如何在每個ListBox中顯示。然後,您可以將所有列表框的ItemsSource綁定到相同的數據源,但它們將根據ItemTemplate呈現不同的屬性。

不知道你對這些概念有多熟悉,但你知道ItemsSource需要是你的數據實例的集合(SomeViewModel?),對不對?

+0

感謝Derek,我已經考慮過這兩個選項,但是我真正想從這裏獲得的收益是有一個通用的ItemTemplate並綁定到同一個ViewModel中屬性的「集合」。 – RajenK 2011-04-06 12:47:58