gpt4 book ai didi

mvvm - 更改 itemssource 绑定(bind)属性 mvvm

转载 作者:行者123 更新时间:2023-12-03 10:44:19 26 4
gpt4 key购买 nike

我在绑定(bind)时遇到问题 ItemsSourceListView到一个属性(property)。
我绑定(bind)了我的ListView查看模型属性:

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

我有 2 个模型,
  • 1 件型号
  • 2人模特

  • 我还有一个菜单,可以打开 1 个名为“表单”的 View ,但会生成 ListView基于菜单名称。

    例如:

    菜单人
  • 打开“表格”并生成ListViewObservableCollection<person>

  • 菜单项
  • 打开“表格”并生成ListViewObservableCollection<item>

  • ListView我将 itemgrid 声明为 ObservableCollection<object>
    然后我用 itemgrid=ObservableCollection<person> 填充它或者如果从菜单项。
    我用 itemgrid=ObservableCollection<item> 填充 itemgrid
    以属性(property)为基础。

    我怎样才能做到这一点?因为如果 itemgrid 是,它就不起作用 ObservableCollection<object> ,

    如果我改变 itemgrid=ObservableCollection<person> ,我在运行时只能显示1。

    在后面的代码上我可以这样做
    if (menu=="person")
    {listview.itemsource=ObservableCollection<person>}
    else
    {listview.itemsource=ObservableCollection<item>}

    在 XAML 上我不知道该怎么做

    最佳答案

    您可以删除显式 ListView DataTemplate ,并在您的资源中的某处声明 DataTemplates 以告诉 WPF 如何显示各种 VM

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

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

    关于mvvm - 更改 itemssource 绑定(bind)属性 mvvm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34409064/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com