问题标签 [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.
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。
有什么解决办法吗?
silverlight - Silverlight中列表框的DataTemplate可以是列表的集合吗
我有一组可观察的集合,我想在一个列表框中显示所有这些集合。每个集合中的数据都属于同一类型,并且已根据特定类别进行了分离。
所以我的问题是,列表框的 DataTemplate 是否可以包含列表框?
c# - 枚举代码中数据模板内声明的控件?
有没有办法在代码中检查 DataTemplate 的内容?我想列出数据模板中的控件,寻找特定类型。
谢谢!
c# - 使用 DataTemplate 定义一个网格来保存 ListBox 的所有项目,而不是每个项目的网格
我有一个绑定到人员列表的 ListBox。我想在网格中显示列表框的项目。我可以使用下面的代码完成此操作,但问题是使用此代码每个项目都有自己的网格。我希望一个网格包含所有项目,以便网格中的每一列自动缩放到最长字符串的宽度。我想我应该改为将数据绑定到网格?如何?
wpf - 动态添加的 DataTemplate - 找不到 Converter 的 StaticResource
我正在使用以下代码将列动态添加到我的 GridView:
Debug.Print 结果:
当我运行它时,它说它找不到_blockToBrushConverter。
例外是:
如果我删除 Forecolor 属性,XAML 解析就好了(并且我得到了预期的结果)。似乎在 DateTemplate.Resources 中包含转换器应该保证它会被找到,但由于某种原因它不是。
我还尝试将我的转换器资源的声明移到树中更高的位置(到窗口级别),但这也不起作用。它似乎能够找到“_gridViewCenterItemStyle”,但由于某种原因,它拒绝找到转换器。
任何想法都非常感谢。
这是堆栈跟踪的整个异常,以防万一:
编辑:
问题已解决:我对整个项目进行了搜索,发现在我的一个资源字典中有一个带有相同 x:Key 的 BlockToBrushConverter 资源声明的额外副本。一旦我消除了重复,问题就消失了。
wpf - 未为 ContentControl 派生类型调用 WPF DataTemplateSelector.SelectTemplate
我正在尝试构建一个ContentControl
-derived 控件(我们称之为它MyContentControl
),它将ControlTemplate
由一个DataTemplateSelector
-derived 类型的实例设置它(我们称之为它MyTemplateSelector
)。
当我尝试这样做时:
我希望,当我在这些控件上设置内容时,会为和 调用方法MyTemplateSelector
的覆盖。DataTemplateSelector.SelectTemplate()
contentControl
myContentControl
实际上,它只为 contentControl 调用。我需要做什么(为什么!)才能使它也起作用myContentControl
?
(不确定它是否相关,但目前MyContentControl
除了DependencyProperties
覆盖DefaultStyleKeyProperty
.
编辑(将其他帖子中的内容移至原始问题):
这是一个更详细的示例:
创建 MyContentControl:
/li>创建
/li>MyTemplateSelector
:添加
/li>ContentControl
和MyContent
控制到您的主窗口(例如):
/li>InitializeComponent
在之后(或在处理程序中)的某处添加此代码Loaded
:
步骤(2)中提到的断点只被命中一次,for content="ABC"
and contentControl
element。
wpf - WPF - 使用 DataTemplates 将数据绑定到 StackPanel
我修改了我的问题,因为它在尝试时改变了焦点。我将问题缩小到以下...
我尝试将 TreeView 的选定项绑定到 StackPanel(或其他可以容纳用户控件的容器)。然后,此容器将显示一个 UserControl,具体取决于所选项目的类型。
这是StackPanel的xaml(treeview和stackpanel都在同一个窗口==>不同的网格列)
当我将用户控件直接放在堆栈面板下(而不是在资源中)时,它会将所选对象显示为它们的数据上下文。同理,如果我在其中放置一个 TextBox,它将显示所选项目的正确类型。
出于某种原因,将其放在 DataTemplate 中(即使没有设置 DataType)也不会显示任何内容。
任何建议。我在想也许 StackPanel 不是正确的控件,尽管我似乎找不到其他看起来适合像这样的容器的控件。
提前致谢。
wpf - WPF 不允许我在绑定路径上放置绑定——还有其他方法吗?
我有一个DataTemplate
我正在使用的CellTemplate
for a GridViewColumn
。
我想为DataTemplate
:
MyGridView
绑定到 a DataTable
,并且我想绑定到DataTable
其名称等于附加到的 HeaderGridViewColumn
的列。DataTemplate
[我希望这是有道理的!]
不幸的是,这不起作用。我收到 XamlParseException:“无法在 'Binding' 类型的 'Path' 属性上设置 'Binding'。只能在 DependenceyObject 的 DependencyProperty 上设置'Binding'。”
我该如何设置?
编辑(提升 DanM 对问题的评论)
我基本上需要一个DataTemplate
其绑定由和附加到DataContext
哪个列。DataTemplate
有替代方案吗?
wpf - 是否可以使用包含控件的触发器更改 DataTemplate 中子项的属性?
我想在 IsMouseOver 触发器中更改矩形的背景颜色,这可能吗?
编辑:
有没有办法将设置器的属性值绑定到子控件?
wpf - 在 itemtemplate (WPF) 的组合框上显示工具提示
我有一个带有 DataTemplate 的 ComboBox。DataTemplate 有两个控件,每个控件都附加了一个工具提示。当您将鼠标悬停在每个控件上时,组合框的项目列表具有预期的工具提示。但是 ComboBox 顶部的选定项目区域不显示工具提示,尽管控件按预期呈现。有没有办法强制显示工具提示?