【问题标题】:WPF tabitems with same content, different bindings具有相同内容、不同绑定的 WPF tabitems
【发布时间】:2018-12-12 06:48:11
【问题描述】:

在我的 Tabcontrol 中,第一个 tabitem 内容与其他内容不同,它是通过 XAML 添加的,可以正常工作。 然而,所有其余部分都是根据自定义集合的计数从视图模型(加载控件时)添加的,并且这些选项卡共享相同的设计,但共享不同的数据,问题是所有选项卡数据都是相同的,即带有集合中的最后一个数据。 (除了选项卡标题文本之外,这些都可以)。 使用相同内容的 Tabitems 是这样构建的:

内容模板使用具有文本块/文本框绑定的 DataTemplate。

<ContentControl Content="{Binding}" x:Key="ResourceTabItemContent" ContentTemplate="{StaticResource ResourceBookingDataTemplate}"/>

然后所有这些都被用于 viewmodel 的控制负载,如下所示:

foreach (var item in MyCollection)
      {
        DXTabItem dxti = new DXTabItem();
        dxti.Content =       (ContentControl)tabmain.FindResource("ResourceTabItemContent");
        dxti.DataContext = item;
        dxti.Header = $"{item.Order} - {item.Name}";                         
        tabmain.InsertTabItem(dxti, tabmain.Items.Count);
      }

那么如何在每个选项卡上看到不同的正确数据,谢谢你的想法!

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    x:Shared=false 设置为ContentControl

    <ContentControl Content="{Binding}" x:Key="ResourceTabItemContent" x:Shared="false" ContentTemplate="{StaticResource ResourceBookingDataTemplate}"/>
    


    来自 MSDN:

    在 WPF 中,资源的默认 x:Shared 条件为 true。这 条件意味着任何给定的资源请求总是返回 同一个实例。

    【讨论】:

    • 没有在 ContentControl 上设置这样的道具
    • 随便写,应该可以编译
    • 天哪...我很接近 :) 谢谢!
    猜你喜欢
    • 2012-07-20
    • 1970-01-01
    • 2020-12-07
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2013-08-31
    相关资源
    最近更新 更多