问题标签 [datatemplate]

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 投票
2 回答
9500 浏览

c# - 通过 DataTemplate 为 WPF-ComboBoxItem 设置 TextSearch.Text

我使用数据模板来可视化 ComboBox 中的一些项目,ItemsSource 绑定到 ObservableCollection。为简单起见,假设我将人员放入 ObservableCollection:

我的数据模板看起来像这样:

现在我想在 ComboBox 中启用全名的自动完成功能,而无需在我的 person 类中引入第三个属性。因此,我不想在 ComboBox 上使用 TextSearch.TextPath 属性,而是想在 DataTemplate 中绑定每个 ComboBoxItem 的 TextSearch.Text-Property。不幸的是,当我这样做时(它适用于 MultiBinding 和 StringFormat,使用 Snoop 测试),绑定值仅为我的 StackPanel 注册,但使用 Snoop(伟大的工具)我发现这个 stackpanel 只是作为进一步的 ComboBoxItemTemplate 的内容,它会在我的外部 StackPanel 周围放置另一个边框等,最后是 ComboBoxItem-tag。因此,TextSearch.Text-setting 无效,因为它必须设置在创建的 ComboBoxItem 中,而不是其中的某个位置。

现在提问:如何仅使用 XAML-Styles 和 -Control-Templates 将此 TextSearch.Text-Property 从我的 DataTemplate 传播到周围的 ComboBoxItem?该解决方案可能会修改 ComboBox 和 ComboBoxItem 的默认 ControlTemplates 以及我的自定义 (Item-)DataTemplate,但不要使用任何 Code-Behind,或者至少不要太多。也许附加的行为也可以。但我几乎可以肯定,必须有一种方法可以让它在没有 TemplateBinding 或 RelativeSource-stuff 的情况下工作......当然,该解决方案必须让我的键盘选择和文本完成工作,s.th。当列表包含 Hans Josef 和 Hans Peter 时,输入“Hans”应该自动建议 Hans Josef,而快速输入“Hans P”应该自动建议 Hans Peter。

有什么解决办法吗?

0 投票
1 回答
512 浏览

silverlight - Silverlight中列表框的DataTemplate可以是列表的集合吗

我有一组可观察的集合,我想在一个列表框中显示所有这些集合。每个集合中的数据都属于同一类型,并且已根据特定类别进行了分离。

所以我的问题是,列表框的 DataTemplate 是否可以包含列表框?

0 投票
1 回答
176 浏览

c# - 枚举代​​码中数据模板内声明的控件?

有没有办法在代码中检查 DataTemplate 的内容?我想列出数据模板中的控件,寻找特定类型。

谢谢!

0 投票
1 回答
237 浏览

c# - 使用 DataTemplate 定义一个网格来保存 ListBox 的所有项目,而不是每个项目的网格

我有一个绑定到人员列表的 ListBox。我想在网格中显示列表框的项目。我可以使用下面的代码完成此操作,但问题是使用此代码每个项目都有自己的网格。我希望一个网格包含所有项目,以便网格中的每一列自动缩放到最长字符串的宽度。我想我应该改为将数据绑定到网格?如何?

0 投票
1 回答
7750 浏览

wpf - 动态添加的 DataTemplate - 找不到 Converter 的 StaticResource

我正在使用以下代码将列动态添加到我的 GridView:

Debug.Print 结果:

当我运行它时,它说它找不到_blockToBrushConverter。

例外是:

如果我删除 Forecolor 属性,XAML 解析就好了(并且我得到了预期的结果)。似乎在 DateTemplate.Resources 中包含转换器应该保证它会被找到,但由于某种原因它不是。

我还尝试将我的转换器资源的声明移到树中更高的位置(到窗口级别),但这也不起作用。它似乎能够找到“_gridViewCenterItemStyle”,但由于某种原因,它拒绝找到转换器。

任何想法都非常感谢。


这是堆栈跟踪的整个异常,以防万一:

编辑:

问题已解决:我对整个项目进行了搜索,发现在我的一个资源字典中有一个带有相同 x:Key 的 BlockToBrushConverter 资源声明的额外副本。一旦我消除了重复,问题就消失了。

0 投票
3 回答
7293 浏览

wpf - 未为 ContentControl 派生类型调用 WPF DataTemplateSelector.SelectTemplate

我正在尝试构建一个ContentControl-derived 控件(我们称之为它MyContentControl),它将ControlTemplate由一个DataTemplateSelector-derived 类型的实例设置它(我们称之为它MyTemplateSelector)。

当我尝试这样做时:

我希望,当我在这些控件上设置内容时,会为和 调用方法MyTemplateSelector的覆盖。DataTemplateSelector.SelectTemplate()contentControlmyContentControl

实际上,它只为 contentControl 调用。我需要做什么(为什么!)才能使它也起作用myContentControl

(不确定它是否相关,但目前MyContentControl除了DependencyProperties覆盖DefaultStyleKeyProperty.

编辑(将其他帖子中的内容移至原始问题):

这是一个更详细的示例:

  1. 创建 MyContentControl:

    /li>
  2. 创建MyTemplateSelector

    /li>
  3. 添加ContentControlMyContent控制到您的主窗口(例如):

    /li>
  4. InitializeComponent在之后(或在处理程序中)的某处添加此代码Loaded

    /li>

步骤(2)中提到的断点只被命中一次,fo​​r content="ABC"and contentControlelement。

0 投票
3 回答
19971 浏览

wpf - WPF - 使用 DataTemplates 将数据绑定到 StackPanel

我修改了我的问题,因为它在尝试时改变了焦点。我将问题缩小到以下...

我尝试将 TreeView 的选定项绑定到 StackPanel(或其他可以容纳用户控件的容器)。然后,此容器将显示一个 UserControl,具体取决于所选项目的类型。

这是StackPanel的xaml(treeview和stackpanel都在同一个窗口==>不同的网格列)

当我将用户控件直接放在堆栈面板下(而不是在资源中)时,它会将所选对象显示为它们的数据上下文。同理,如果我在其中放置一个 TextBox,它将显示所选项目的正确类型。

出于某种原因,将其放在 DataTemplate 中(即使没有设置 DataType)也不会显示任何内容。

任何建议。我在想也许 StackPanel 不是正确的控件,尽管我似乎找不到其他看起来适合像这样的容器的控件。

提前致谢。

0 投票
2 回答
2190 浏览

wpf - WPF 不允许我在绑定路径上放置绑定——还有其他方法吗?

我有一个DataTemplate我正在使用的CellTemplatefor a GridViewColumn

我想为DataTemplate

MyGridView绑定到 a DataTable,并且我想绑定到DataTable其名称等于附加到的 HeaderGridViewColumn的列。DataTemplate[我希望这是有道理的!]

不幸的是,这不起作用。我收到 XamlParseException:“无法在 'Binding' 类型的 'Path' 属性上设置 'Binding'。只能在 DependenceyObject 的 DependencyProperty 上设置'Binding'。”

我该如何设置?

编辑(提升 DanM 对问题的评论)

我基本上需要一个DataTemplate其绑定由和附加到DataContext哪个列。DataTemplate有替代方案吗?

0 投票
2 回答
883 浏览

wpf - 是否可以使用包含控件的触发器更改 DataTemplate 中子项的属性?

我想在 IsMouseOver 触发器中更改矩形的背景颜色,这可能吗?

编辑:

有没有办法将设置器的属性值绑定到子控件?

0 投票
1 回答
2324 浏览

wpf - 在 itemtemplate (WPF) 的组合框上显示工具提示

我有一个带有 DataTemplate 的 ComboBox。DataTemplate 有两个控件,每个控件都附加了一个工具提示。当您将鼠标悬停在每个控件上时,组合框的项目列表具有预期的工具提示。但是 ComboBox 顶部的选定项目区域不显示工具提示,尽管控件按预期呈现。有没有办法强制显示工具提示?