WPF:使用 TabControl 进行数据绑定时出现奇怪的问题

2024-01-05

我正在尝试使用 DataBinding 动态填充 TabControl 但遇到问题。dataBinding运行良好,但我希望每个 TabItem 的内容彼此独立。这是我的 XAML 代码:

<TabControl
    DockPanel.Dock="Left"
    ItemsSource="{Binding OpenChats}"
    Name="tabChats"
    VerticalAlignment="Top"
    Width="571">

    <TabControl.ItemTemplate>
        <DataTemplate>
            <TextBlock
                Text="{Binding Name}" />
        </DataTemplate>
    </TabControl.ItemTemplate>
    <TabControl.ContentTemplate>
        <DataTemplate>

            <TextBox />
        </DataTemplate>
    </TabControl.ContentTemplate>

</TabControl>

TabItems 是使用不同的标题创建的(如我想要的),但是当用户在 ContentTemplate 内的 TextBox 中键入内容时,相同的文本将保留在不同的 tabItems 中,我不希望这样。

我究竟做错了什么?


我有同样的问题。这answer https://stackoverflow.com/questions/2914495/wpf-how-to-programmatically-remove-focus-from-a-textbox帮助过我。我的解决方案是在选项卡更改时从文本框中删除焦点。当文本框中的焦点被移除时,新内容将按预期设置为绑定属性。

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        DependencyObject focusedElement = (FocusManager.GetFocusedElement(tabControl) as DependencyObject);
        if (focusedElement != null)
        {
            DependencyObject ancestor = VisualTreeHelper.GetParent(focusedElement);
            while (ancestor != null)
            {
                var element = ancestor as UIElement;
                if (element != null && element.Focusable)
                {
                    element.Focus();
                    break;
                }

                ancestor = VisualTreeHelper.GetParent(ancestor);
            }
        }

    }

or use

Text="{Binding UpdateSourceTrigger=PropertyChanged}"

在文本框绑定上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF:使用 TabControl 进行数据绑定时出现奇怪的问题 的相关文章

  • 将字符串数组添加到组合框

    我有一个组合框 我想加载一个从方法返回的字符串数组 我目前只是用 for 循环加载它 但我认为应该可以将字符串数组直接分配给组合框 我只是想改进我的代码 我已经做了一些搜索 并且看到了使用数据范围或数据源的答案 但这些似乎都不起作用 我也尝
  • WPF 列表框不会垂直滚动

    在 Groupbox 中 我有一个 Listbox ListboxItems 也在 XAML 中定义 列表框定义为
  • WPF DataGrid 的 Items 和 ItemsSource 属性之间有什么区别?

    从我从 Intellisense 收集到的信息来看 区别在于返回类型 并且 ItemsSource 有一个 setter 而 Items 只有一个 getter 但实际上 我不明白这两个属性需要彼此分开 而不仅仅是作为一个属性 有人可以向我
  • Caliburn.Micro - ShowDialog() 如何关闭对话框?

    EDIT 新信息 刚刚设法让记录器工作 老实说 我不知道 cm 有一个 并且在尝试使用时收到此消息TryClose TryClose requires a parent IConductor or a view with a Close m
  • 列表元素之间的 Tab WPF

    我有一个列表框 其中每个项目都使用文本框表示 问题是我希望能够在移动到 xaml 窗口中的下一个元素之前在列表框中的所有项目之间进行切换 当前 和正常的 WPF 行为 是 当我按 Tab 键进入列表框时 第一个元素会突出显示 如果我再次按
  • 全屏模式下的 XBAP

    我想以全屏模式运行 XBAP 有没有办法让IE全屏打开XBAP 由于我以完全信任的方式运行 每当用户单击全屏按钮时 我都会使用 Process Start 方法以 kiosk 模式打开 IE 以下代码解决了我的问题 Process Star
  • 以编程方式从 Generic.xaml 查找资源

    我正在尝试实施WPF 和 Silverlight 中的样式绑定 摘自本文 http www wintellect com cs blogs jprosise archive 2011 04 19 silverlight 5 s new st
  • 为什么这个 Microsoft.VisualStudio.Imaging.CrispImage 不显示任何内容?

    我正在尝试创建一个非常简单的 WPF 应用程序来实验 Visual Studio 的这个概念图像服务和目录 https msdn microsoft com en us library mt628927 aspx 我不明白为什么我似乎无法在
  • WPF圆形奇怪边框

    Hi 我现在已经尝试了 2 天多的时间来创建处于按下状态的切换按钮 如上图所示 但上边框让我头疼 有谁知道如何创建向下的圆角 背景是从上到下的线性渐变 b8c7d6 a8b3c4 任何帮助将不胜感激 我有这样的东西 但它与设计相去甚远
  • 如何使 WPF 中的窗口对鼠标事件不可见?

    我创建了这个类 它非常适合使我的 WPF 应用程序对鼠标事件透明 using System Runtime InteropServices class Win32 public const int WS EX TRANSPARENT 0x0
  • 为什么在 WinForms 中可以跨线程添加控件,而在 WPF 中却不能?

    在虚拟 WinForms 应用程序中 我可以在设计时创建 ListBox 在运行时创建后台线程 然后从后台线程将控件添加到 ListBox 但如果我在 WPF 中执行相同的操作 则会出现错误 为什么我可以在 WinForms 中执行此操作
  • 根据值更改 DataGrid 单元格颜色

    我有一个 WPF 数据网格 我想要根据值使用不同的单元格颜色 我的 xaml 上有以下代码 Style TargetType DataGridCell 但不是只选择一个单元格而是选择所有行 我缺少什么 如果您尝试设置DataGrid Cel
  • 使用 XAML 文件作为矢量图像源

    我希望能够使用矢量图形 最好在 XAML 中定义 作为图像控件的源 就像我当前可以使用 PNG 等光栅图像一样 这样我就可以轻松地混合和匹配位图和矢量图像 如下所示
  • 如何从用户控件引发自定义路由事件?

    在我的用户控件中 我有一个按钮 单击该按钮时会引发自定义路由事件 我试图引发它 但它没有在 MainWindow xaml 中被触发 UserControl 中按钮的 Xaml
  • 如何检索 ComboBox 选定的值作为枚举类型?

    这是我的Enum code public enum EmployeeType Manager Worker 我将初始化ComboBox值 而表单将自身初始化为 combobox1 ItemsSource Enum GetValues typ
  • WPF DataGrid 排序后滚动到顶部

    我有一个使用数据网格的 Net 4 0 WPF 应用程序 目前 按列排序后 网格的滚动位置保持在排序前的位置 对于此应用程序 我需要在任何排序后滚动到网格顶部 我尝试过像这样处理排序事件 Private Sub myDataGrid Sor
  • MVVM 创建 ViewModel

    有人可以向我解释一下如何为 MVVM 模式创建 ViewModel 我试图理解这里的教程 http msdn microsoft com en us magazine dd419663 aspx http msdn microsoft co
  • ListView:在资源字典中定义ItemsPanelTemplate

    我有一个 ListView 其布局看起来像 Windows 资源管理器视图 图标 一些详细信息 绑定到 ViewModel 中某处的列表 我的目标是能够随时在资源管理器视图或经典视图之间切换 我可以定义一个ItemsPanelTemplat
  • 获取程序集中所有资源的列表

    我有一个文件夹Resources并想要获得一份包含所有内容的列表paths 如果我将它们设置为embedded resource 我可以通过 var resources Assembly GetExecutingAssembly GetMa
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person

随机推荐

  • 如何显示微调器的图标并单击打开列表

    我想显示微调器的图标 然后单击打开突出显示所选位置的列表 这是我在微调器中添加项目的方法 public void addItemsOnSpinner try List
  • Python - 当包具有相同名称时从文件导入

    当我开始我的Python项目时 我做了一些愚蠢的事情 我将我的主文件命名为project py 并将一堆逻辑存储在一个也称为project的包中 这是目录结构 project py project other files 问题是 现在我需要
  • WebRTC:匹配最近的同行

    给定一个公共 IP 地址 对等点 A 和许多其他公共 IP 地址 IPv4 和 IPv6 地址的混合 列表 将对等点 A 的 IP 地址匹配的最简单方法是什么 n最近的对等点 而无需让对等点手动相互 ping 通以进行延迟基准测试 我认为使
  • 在 Phonegap 应用程序中获取 Wordpress 帖子时出现 Access-Control-Allow-Origin 错误

    希望有人可以帮助我在phonegap中开发移动应用程序时解决以下问题 我正在尝试从 WordPress 安装中读取帖子 但是当我在 chrome 上运行我的 index html 页面时出现此错误 XMLHttpRequest 无法加载 O
  • 如何通过点击按钮隐藏div?

    在我的 angular js 学习项目中 我想隐藏一个 div 并在单击按钮时显示另一个 div 在此代码中 我希望第一个 div 在单击时隐藏 甚至被销毁 并显示第二个 div 基本上我想要在我的应用程序中从第 1 页转到第 2 页的用户
  • 尝试在powershell中结合替换和新项目

    我有一个任务要更改目录中的一些配置文件 需要更改的文件有7个 全部以 Monitoring Tran xx 开头 这些文件中有某些值 TransactionID 01 AgreedResponseTime 500 SearchProfile
  • 使用 PHPstorm 7 文件观察器将 SCSS / SASS 转换为特殊文件夹中的 CSS

    我使用 PHPstorm 6 并且我的 SCSS 文件被编译到 CSS 文件夹中 所以我有 css main css img js scss main scss variables scss Hier are my definitions
  • 如何找到具有相同子节点的节点

    我有以下 xml 请注意 节点 n1 和 n3 具有相同的子节点 顺序可以不同 如何编写 XSL 转换来识别此类节点
  • 将函数传递给模板组件

    是否可以将函数传递给stencilJs成分 就像是 Prop okFunc gt void 我有一个模态 想要动态调用传递的函数Ok在模态页脚中单击按钮 就像onClick在普通的 HTML 按钮上 是的你可以 这只是正常现象 Prop 声
  • C 套接字发送/接收缓冲区类型

    我正在使用unix套接字 当我的缓冲区是char类型时 即发送和接收字符串 我可以发送 和recv 数据 我使用了 Beej 的套接字指南 所使用的示例用于发送 接收字符串 现在我想在一条消息中发送 接收不同类型的数据 例如 假设在一条消息
  • 在matlab中进行FFT移位的有效方法(不使用fftshift函数)

    http www mathworks com help techdoc ref fftshift html http www mathworks com help techdoc ref fftshift html 如果您检查该链接 这就是
  • 如何以编程方式更改android中图像按钮的大小

    我必须以编程方式创建几个按钮图像按钮 但我不知道如何更改它们的大小 向左和向右更改不起作用 用这个 LinearLayout LayoutParams params button getLayoutParams params width 8
  • 在 HTML 中将表格单元格拆分为两列

    我有下表 table border 1 tr th Header th th Header th th Header th tr tr td nbsp td td nbsp td td Split this one into two col
  • 当未找到特定日期的记录时,返回结果集中的行

    我创建了一个查询来返回以下输出 Date Day Sale Qty Purchase Qty Transfer Qty 05 04 2015 1 11 0 0 07 04 2015 3 0 16 0 08 04 2015 4 12 14 1
  • 在 JavaScript 中使用高阶函数中的原型函数

    我正在尝试使用reduce 连接数组数组 我想我可以使用 Array prototype concat 函数 如下所示 arr 1 2 3 arr reduce a b gt Array prototype concat a b 效果很好并
  • Azure Blob 列表分页

    我的容器中有 3000 个文件 在我的 gridview 中 我显示容器 blob 列表 但 3000 太多了 对性能不利 我的想法 我需要一个分页代码 例如我的网格页面大小是 50 我将在 gridview 中的第一页的容器中显示前 50
  • 具有 Windows 安全性的 Python Selenium 网页

    我正在尝试定期从我组织的网站自动下载一些 CSV 他们非常友善 没有为我提供后端数据库访问或 API 所以我不得不拼凑一些东西来帮我处理这个问题 该网站是一个 Oracle PeopleSoft 网站 会提示Windows Security
  • 在 iPython Notebook 中触发文件下载

    给定一个在外部服务器上运行的 iPython 笔记本 有没有办法触发文件下载 我希望笔记本能够启动将外部服务器上的文件下载到本地渲染笔记本的位置 或者执行从笔记本工作区到文本文件的直接字符串转储 下载到本地 IE 一个强大的工具是 Note
  • 装饰器模式的功能等效吗?

    与装饰器设计模式等效的函数式编程是什么 例如 你会怎么写这个特殊的例子 https en wikipedia org wiki Decorator pattern First example window scrolling scenari
  • WPF:使用 TabControl 进行数据绑定时出现奇怪的问题

    我正在尝试使用 DataBinding 动态填充 TabControl 但遇到问题 dataBinding运行良好 但我希望每个 TabItem 的内容彼此独立 这是我的 XAML 代码