WPF 数据模板绑定

2024-03-06

我发现在 WPF TabControl 中使用 ContentTemplate/DataTemplate 时,我的绑定将不再起作用。

我举了一个小例子来说明:

<Window x:Class="HAND.BindingExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="BindingExample" Height="506" Width="656"
    DataContext="{Binding RelativeSource={RelativeSource Self}}"
    >
<Grid>
    <TabControl HorizontalAlignment="Left" Height="381"  VerticalAlignment="Top" Width="608">
        <TabItem Header="TabItem">
            <Label Content="{Binding Path=myString}"/>
        </TabItem>
        <TabItem Header="TabItem">
            <TabItem.ContentTemplate>
                <DataTemplate>
                    <Label Content="{Binding Path=myString}"/>
                </DataTemplate>
            </TabItem.ContentTemplate>
        </TabItem>
    </TabControl>
</Grid>
</Window>

Tab1 按预期工作,Tab2 为空。

背后的代码:

using System.Windows;

namespace HAND
{
    public partial class BindingExample : Window
    {
        public string myString { get; set; }

        public BindingExample()
        {
            myString = "Hello Stackoverflow";

            InitializeComponent();
        }
    }
}

您正在使用ContentTemplate属性错误。来自ContentControl.ContentTemplate财产 http://msdn.microsoft.com/en-us/library/system.windows.controls.contentcontrol.contenttemplate%28v=vs.110%29.aspxMSDN 页面:

获取或设置用于显示 ContentControl 内容的数据模板。

因此,在设置该属性时,还需要设置Content某种数据源的属性:

<TabControl>
    <TabItem Header="TabItem">
        <Label Content="{Binding Path=myString}"/>
    </TabItem>
    <TabItem Header="TabItem" Content="{Binding Path=myString}">
        <TabItem.ContentTemplate>
            <DataTemplate>
                <Label Content="{Binding}" />
            </DataTemplate>
        </TabItem.ContentTemplate>
    </TabItem>
</TabControl>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 数据模板绑定 的相关文章

  • 如何使这些 std::function 参数明确?

    传递 lambda 时 以下函数重载是不明确的 我发现std function can be 由大多数可调用类型构造 https stackoverflow com a 22543082 1079110 即使他们的签名不匹配 所以编译器无法
  • 如何使用 google test for C++ 来运行数据组合

    我有一个单元测试 需要针对 200 种可能的数据组合运行 生产实现在配置文件中有要测试的数据 我知道如何模拟这些值 我更喜欢为每个组合编写单独的测试用例 并使用某种方式循环数据 有没有使用 Google test for C 的直接方法 您
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 用于将 cython 中的许多 C++ 类包装到单个共享对象的项目结构

    我在文档 邮件列表和这个问题在这里 https stackoverflow com questions 10300660 cython and distutils 但我想得到一个更直接的答案来解决我的具体情况 我正在通过尝试一点一点地包装我
  • WP8.1:Cortana uri 关联?

    Cortana 是否有 uri 关联 或者从其他应用程序启动的其他方式 我已经尝试过了 await Launcher LaunchUriAsync new Uri cortana await Launcher LaunchUriAsync
  • 如何在 C++ 中将向量迭代器转换为 int

    我正在寻找 C 向量中的一个元素 当我找到它时 我想以数字形式 整数 浮点数 获取找到的元素的索引 我天真的尝试是这样的 int x int index vector
  • 由于索引无效,无法加载计数器名称数据 -Exception

    我使用 C 和 WPF 操作系统是 windows 7 Professional 和 Visual Studio 2012 SQL Server 2012 我在wpf中使用了Devexpress Grid 我想使用 ADO Net 服务器模
  • 在 JsonConverter 中递归调用 JsonSerializer

    我正在写一个JsonConverter要执行一些我需要在读 写时完成的转换任务 特别是 我采用现有的序列化行为 并在写入 读取时添加一些附加属性 在 的里面JsonConverter 我想利用通过的JsonSerializer实例来执行大部
  • WPF:Prism 对于小型应用程序来说是不是太过分了?

    如果我不将我的应用程序分成不同的模块 否则我会认为 Prism 确实是可行的方法 我应该使用 Prism 吗 我知道 Prism 提供了一个方便的实现ICommand 我可以自己在一页代码中完成 并为我们提供IEventAggregator
  • Wpf TextBlock 中的垂直文本

    是否可以垂直显示 TextBlock 中的文本 以便所有字母彼此堆叠 不使用 LayoutTransform 旋转 还没有人提到使用纯 XAML 垂直堆叠任意字符串的字母 不旋转它们 的明显而简单的方法
  • 何时使用模拟框架?

    因此 我正在使用模拟框架 Moq 进行单元测试 并且想知道何时应该使用模拟框架 以下两个测试之间的优点 缺点是什么 public class Tests Fact public void TestWithMock Arrange var r
  • ASP.net C#,采用不同参数类型的同名方法[重复]

    这个问题在这里已经有答案了 可能的重复 可以在 ASP Net MVC 中重载控制器方法吗 https stackoverflow com questions 436866 can you overload controller metho
  • 不能从模板 C++ 类继承[重复]

    这个问题在这里已经有答案了 我不知道这里出了什么问题 也许有人可以帮助我 我想继承我的新班级MyDictionary来自模板抽象类dictionary 我有这样的代码 字典 h ifndef UNTITLED CPP DICTIONARY
  • CommandManager.InvalidateRequerySuggested 不会导致对 MVVM-Light 中的 CanExecute 进行重新查询

    我正在使用 MVVM Light RelayCommand private ICommand myRevertCmd public ICommand Revert get if myRevertCmd null myRevertCmd ne
  • 静态方法中的统一

    一个可能很简单的问题 但很奇怪为什么我不知道该怎么做 Unity PRISM 和静态方法 在这种特殊情况下 需要使用扩展方法 但一般来说 如何在静态方法中访问 统一提供的实例 想想例如我想访问一个日志服务来记录我在静态方法中所做的一些事情
  • 从字符串末尾删除多个字符类型

    我有一个构建地址字段的循环 其中一些字段在字符串末尾可能为空 List
  • 如何正确初始化“min”变量?

    我的代码中有一个小问题 用于从一系列数字中查找最小值 当我初始化时min 0 最小值结果为0 但是当我不初始化时min 答案是正确的 为什么会出现这种情况 Xcode 告诉我应该初始化min多变的 int a 20 0 int max 0
  • 如何使转发引用参数仅绑定到右值引用?

    我正在编写一个网络库 并大量使用移动语义来处理文件描述符的所有权 我的一个类希望接收其他类型的文件描述符包装器并取得所有权 所以它就像 struct OwnershipReceiver template
  • 什么时候值得使用 BindingSource?

    我想我非常了解 BindingSource 类的作用 即在数据源和 UI 控件之间提供一个间接层 它实现了 IBindingList 接口 因此还提供了对排序的支持 而且我已经经常使用它 没有太多问题 但我想知道我使用它的频率是否超过了应有
  • WPF - 如何从 DataGridRow 获取单元格?

    我有一个具有交替行背景颜色的数据绑定 DataGrid 我想根据单元格包含的数据对单元格进行不同的着色 我已经尝试过该线程建议的解决方案 http wpf codeplex com Thread View aspx ThreadId 511

随机推荐