问题标签 [contentcontrol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3618 浏览

wpf - 使用来自不同程序集的资源和 DataTemplateSelector

我在基础程序集中有一个控件,其中包含我想根据当前 DataContext 设置的内容。

为此,我尝试在调用程序集中使用资源和子类 DataTemplateSelector,如下所示。我最初的希望是调用子类 DataTemplateSelector,但事实并非如此。然后我尝试在调用程序集的资源字典中添加一个条目,使用相同的键但子类选择器,但这也没有完成。

有没有办法修复我必须使它工作的代码?有没有更好的策略来从调用程序集设置我的内容?

干杯,
贝里尔

用户控制(基本组件)

资源和 DataTemplateSelector(基础程序集)

资源和选择器(调用程序集)

应用程序字典设置(调用程序集)

0 投票
1 回答
4665 浏览

wpf - DataTemplate 中的 ContentControl 两种方式绑定不起作用?

我为数据网格列设置了一个可重用的数据模板“DataGridCheckBoxEdit”。以一种方式绑定到它就像通过 ContentControl 的魅力一样。绑定直接以两种方式正确工作。但是,从 ContentControl 在该 DataTemplate 中以两种方式绑定是行不通的。

以下是片段:

和可重复使用的模板:

正如我所说,绑定的一种方式就像一个魅力......但将数据返回到属性却没有。

当然,把它放在不可重复使用的地方:

也很好用,并且可以双向工作。

我究竟做错了什么?

谢谢!

弗拉丹

0 投票
1 回答
1473 浏览

wpf - DataTemplate 中的 TextBox,在 GotFocus 上无法分配 SelectionStart?

我的文本框有一个逻辑,即在焦点上将选择开始移动到最后一个字符,以便编辑人员可以继续写作。

这与此完美配合:

但是当我把它移到:

和一个可重用的模板:

它刚刚停止工作。GotFocus 事件触发,但我根本无法为 SelectionStart 分配任何内容,它只是不保存它。甚至尝试过硬编码:

但没有用。还值得注意的是 Text 是空的,此时只填充了 DataContext,但是由于 SelectionStart 没有采取任何措施(保存),这对我没有好处。

我究竟做错了什么?

亲切的问候,弗拉丹

0 投票
1 回答
18784 浏览

c# - ContentControl.Template 和 ContentControl.ContentTemplate 有什么区别

ContentControl.Template 和 ContentControl.ContentTemplate 有什么区别?我什么时候用哪个?

例如,我可以在 WPF 的 xaml 文件中编写:

注意 ContentControl。模板标签

或者我可以这样写:

注意 ContentControl。内容模板标签

输出看起来相同,在第一种情况下,我使用 ControlTemplate,在另一种情况下使用 DataTemplate。但是,我应该如何决定是否必须使用 .Template 或 .ContentTemplate?以及这有什么影响(例如对 DataBinding、Property Inheritance,...)。

0 投票
1 回答
3738 浏览

wpf - 如何像使用项目控件一样根据数据类型启用自动 DataTemplate 选择?

我们正在编写一个非常专业ItemsControl的,实际上ContentPresenter每行有三个 ',每个绑定到不同的对象(想想穷人的网格),而不是更常见的对象,比如ListBox.

现在,ListBox如果您没有明确指定 anItemTemplate或 an ItemTemplateSelector,则似乎有一些内部选择器纯粹基于数据类型应用模板。但是,我们ContentPresenter的 's 并没有接他们。我们也尝试将它们切换为ContentControl's,但这也没有奏效。

现在我知道我可以简单地编写我自己的DataTypeTemplateSelector来执行此操作,但我想知道该功能是否已经“烘焙”在某个被认为与这么多ItemsControl's ( ListBox, TreeView, ComboBox' DataGrid, 等) 一起使用的地方并且根据这个 MSDN文章...

http://msdn.microsoft.com/en-us/library/ms742521.aspx

...它应该默认工作!但同样,它没有。

这是我们的(伪)代码......

所以......有人想试一试,为什么不呢?

0 投票
2 回答
1489 浏览

wpf - 如何使用 DataTrigger 应用 DataTemplate 样式

我正在尝试基于 Binding 值应用 ContentTemplate。问题是,它不起作用。

我有一个名为 TemplateA 的默认模板,然后我想显示基于数据绑定值的样式 - TemplateA 或 TemplateB。

如果我注释掉默认模板,则不会选择任何模板。

我检查了我的数据绑定值,该值没问题。

你能看出我哪里错了吗?

这是 ListDataView

它位于 Window 的 Resources 部分,ListDataView 附加到代码中的 ObservableCollection。

0 投票
0 回答
1052 浏览

wpf - 如何在 TemplateSelector 中获取 WPF DataGrid 的活动行

我有一个包含三列的 WPF Datagrid。前两列 DataGridComboBox Columns。第三列是 Template 列,里面有 ContentControl。我想将此 Datagrid 用作高级搜索的数据输入表单。第一列将与数据库中有关文档的属性列表(如 DocumentName、OwnerName、DateCreated 等)绑定。第二列将是运算符列表 (<,<=,!=)。这些运算符将根据从单元格 [0] 中的组合框中选择的属性动态更改。这是在第一个组合框的 SelectionChanged 事件中处理的。

在内容控件(在单元格 [2] 中)内,我需要加载一个 DataTempalte(每个都包含不同的 UI 控件,如 autocompleteBox、DatePicker 等),该控件基于在第一列的组合框中选择的属性在窗口的资源中定义。为此,我添加了一个自定义模板选择器。但我无法访问 DataGrid ComboxBox 及其 DataTempalte 选择器代码中第一个单元格的内容。

请注意,我不想将现有数据绑定到数据网格。数据网格将用作数据输入表单。所以我总是希望只在编辑模式下保留前几行中选择的值。

请参考我的 UI 中的示例代码和后面的代码:

这是我设置为我的数据源的项目源的类。

下面的代码用于处理第一个组合框的选择更改事件。在此选择更改事件中,我可以在单元格 [1] 中获取 ComboBox。但我无法在单元格 [2] 中获取 ContentControl。有人可以提出更好的方法来实现这一目标吗?

我对网格的第三列作为内容演示者进行了以下更改:

在上述更改之后,我现在可以在comboxBox 列的SelectionChanged 事件中(在第一列中)动态地将数据模板分配给contentPresenter,如下所示。

但是现在在第二列中,我设置的运算符值被所有行中的最新运算符替换。例如,如果在第一个组合框中选择的属性是 TemplateName,则会有一个包含两个运算符(Equal、NotEqual)的列表。但是,当在第一个组合框中选择 DateCreated 时,第二行中的运算符列应显示 (<,<=,>,>=)。但是由于我使用comboxColumn(columnOperator) 的名称来分配这些运算符,因此第一行中的运算符也使用DateCreated 的运算符进行了更新。如何恢复前几行的值?

0 投票
1 回答
1091 浏览

wpf - 自定义内容控制默认内容

我有一个从 Control 继承的 WPF 自定义内容控件,当开发人员从工具箱中拖动此控件时,我希望它具有像扩展器控件一样的默认内容。

我怎样才能做到这一点 ?

谢谢

0 投票
2 回答
1115 浏览

wpf - ContentControl 排列/测量子面板

因此,可以更轻松地更改面板的类型,将逻辑保持为缩放、平移、拖动子项,并在父 ContentControl 中实现。

安排/测量覆盖问题,拖动鼠标定位已成为地狱。似乎所有位置都被抵消了:

e.GetPosition(this.Content as Panel).X

使 Dragged Children 在左侧以巨大的偏移量移动。

Translate(Point,UIElement)

似乎对任何调用组合都没有影响:

this.Content.Translate(Point,Children);

或者

Child.Content.Translate(Point,this.Content);

既不尝试:

Offset(x,y)

在 TranslateTransform 或 HitTest 之前和之后。

类似场景的好例子:http: //www.codeproject.com/KB/WPF/zoomandpancontrol.aspx

如何修复 HitTesting/DragMove 中的拖动偏移?我到底可以在安排/测量覆盖中修复什么以使 TranslateTransform 没有 UnTranslable 偏移量?谢谢

0 投票
1 回答
1077 浏览

openxml - 内容控制删除 - 需要解决方案

我需要处理应用程序的文档生成模块。我浏览了一些链接和博客,这些链接和博客帮助我继续实现内容控制和基于自定义 XML 的文档生成。

使用这种方法,我们能够生成文档,其中包含映射到内容控件的 XML 数据。我们主要担心的是,一旦 XML 数据更新,我们不知道如何删除内容控件。

设想:

  1. 生成的文档包含用户可见的内容控件。如何避免?我们希望代码片段来处理这种情况
  2. 在某些情况下,我们使用了嵌套内容控件。特定部分或数据的内容控件在文档生成之前针对输入数据 XML 进行验证。根据 XML 值,某些部分/值将以编程方式删除。

我浏览了以下链接,希望得到解决方案:

http://openxmldeveloper.org/discussions/formats/f/13/p/750/3578.aspx

http://social.msdn.microsoft.com/Forums/eu/oxmlsdk/thread/2bff522d-8eb8-4d82-a8d6-4e27d9ce57af

我是 OpenXMl 的新手,所以此刻感谢您的帮助。