2015-12-22 247 views
1

我有問題綁定ItemsSourceListView屬性。 我已經綁定我ListView到視圖模型屬性:更改itemsource綁定屬性mvvm

<ListView ItemsSource="{Binding itemgrid, Source={StaticResource viewmodel}}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <local:UCListFormat></local:UCListFormat> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
</ListView> 

我有2個型號,

  • 1 itemmodel

  • 2 personmodel

我也有一個菜單打開1個名爲'form'的視圖,但會生成ListView基於菜單名稱。

例如:

菜單人

  • 開放的 '形式',併產生ListViewObservableCollection<person>

菜單項

  • 開放的 '形式',併產生ListViewObservableCollection<item>

ListView我宣佈itemgrid爲ObservableCollection<object>

然後我寫些itemgrid=ObservableCollection<person>或者如果菜單項。 我使用itemgrid=ObservableCollection<item> 根據屬性填充itemgrid。

我該怎麼做?因爲它不工作,如果itemgrid是 ObservableCollection<object>,

如果我更改itemgrid=ObservableCollection<person>,我只能在運行時顯示1。在後面的代碼,我可以做到這一點像這樣

if (menu=="person") 
{listview.itemsource=ObservableCollection<person>} 
else 
{listview.itemsource=ObservableCollection<item>} 

在XAML我不知道該怎麼辦呢

+0

目前還不清楚你在問什麼,你可以多一些代碼? – bit

+0

sory,你可以再看看這個。我給我更多的細節問題... thx – RIP

回答

0

可以刪除明確ListViewDataTemplate,並在你的資源某處聲明的DataTemplates

告訴WPF如何顯示各種虛擬機

<DataTemplate DataType="{x:Type vm:Person}"> 
    <view:PersonView /> 
</DataTemplate> 

<DataTemplate DataType="{x:Type vm:Item}"> 
    <view:ItemView /> 
</DataTemplate> 
+0

對不起,我真的不明白。在datatemplate我打算使用itemtemplate選擇器動態更改列綁定。 但我有問題itemsource綁定如何可以接受2模型 – RIP