问题标签 [datatemplateselector]
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.
wpf - 在模板列内绑定控件
我有一个包含 3 列的数据网格。列是Property, Operator, Value
。这些是关于存储在我们数据库中的文档。Property
和列的值Operator
是从业务对象中的枚举定义的。
我有以下类来绑定 DataGrid:
前两个属性是枚举。我已将上述类的可观察集合绑定到我的数据网格。所有的列都是模板列。前两列有一个CellEditTemplate
在其中定义的组合框。我已经使用对象数据提供者绑定了枚举。第三列是模板列,它是使用模板选择器加载的。这样做的原因是根据第一列中选择的属性启用加载不同的控件:
此外,我有一个组合框选择更改事件以在第三列中动态加载控件(显式设置列的数据模板)并设置数据源(用于 AutoCompleteBox)。当网格最初加载时将允许添加行设置为 true,上述方法工作正常。我可以将加载的控件值获取到对象中(使用 AutoCompleteBox 中的选定项等)。
但是我在上述输入中遇到的问题被存储为搜索过滤器并被检索。检索时,我无法将属性值绑定到动态加载的控件。我已经尝试过 DataGrid 的各种事件(RowLoading、Loaded、SelectedCellChanged 等)。
最后,我可以在模板选择器中设置控件的值。但是当我看到屏幕时,它显示的是空白内容(用于自动完成框和组合框)。有人可以建议我如何将动态控件与 SearchValue 重新绑定?
更多细节:
上述网格的内容存储为 DocumentProperty 的 observable 集合。对象的值作为 XML 存储在数据库表中。当用户再次登录时,XML 的内容被转换为 DocumentProperty 的 Observable 集合并再次绑定到网格。在这里,我遇到了一个问题,如果我放置一个单元格模板并将文本块放入其中,我可以毫无问题地绑定 SearchValue 属性。但我正在搜索值属性中查找绑定对象的 ID。所以绑定网格中的文本块将始终显示 ID。
因为我想在上面的 AutoCompleteBoxes 中显示 Tempalte、Docment、Owner 等的相应名称。因此,我使用单元格模板选择器将该列作为 DataTemplate 列。
wpf - 如何在 WPF ListView 中使用 ItemTemplateSelector 和 HeaderTemplate?
假设以下 XAML 定义的窗口:
并DataTemplateSelector
在后面的代码中定义如下:
如果没有注释掉标头模板的代码,则不再调用 DataTypeSelector。如何同时指定 aDataTemplateSelector
和HeaderTemplate
?
wpf - 跨不同 DataGrid 行的 DataTemplate 重复
我有一个 WPF 4 DataGrid,其中第一个 ComboBox 通过使用 DataTemplateSelector 键控一个 id 来更改第二个 ComboBox 绑定的内容。出于某种奇怪的原因,第二列中的任何相同类型的单元格似乎都绑定到相同的值。我相信这与使用 DataTemplate 有关,因为我以前见过这个问题,但显然我不了解我需要知道的东西。
这是我到目前为止组装的代码:
MainWindow.xaml:
主窗口.xaml.cs
c# - 使用 WPF 动态加载内容
好的,我有一个容器,我为其创建了两个数据模板。基本上,一个模板将显示 5 个文本框,其中绑定了对象数据,另一个模板将显示一个按钮以添加该特定对象。我对 DataTemplateSelector 进行了子类化,它可以工作,但是当我浏览我的记录时,选择器再也不会被调用。
那么我将如何让容器重新选择它的模板。该容器是一个 StackPanel,我已经尝试过 UpdateVisuals、InvalidateVisuals、InvalidateArrange 和 ApplyTemplate。
XAML 代码
初始化组框上更改的内容
最后是选择器代码
这是我的导航代码片段
这两种附加方法是检查学生的关系是否为空,他们将为我创建它并将其添加到数据上下文中,否则实体框架将不会保存更改。上面的数据模板基本上可以帮助我解决在尝试创建新学生时没有 studentId 的问题。
wpf - 带有 DataTemplateSelector 的 ContentControl - 需要帮助
我遇到了一个令人讨厌的问题......也许有人可以(请!)提供帮助。我正在使用一个模型,该模型具有类型和枚举,以及一个属性,该属性应该为枚举中的每个选定类型保存 UI 模型:让我们像这样定义它们:
我想要一个内容控件,每次我更改 selectedType 时,它都会使用 datatemplateselector 来更改他的视图。
问题:在我创建的要由 ruleEditTemplateSelector 返回的 DataTemplates 中,DataContext是Type(同意这一点),但我需要访问editedModel 来创建我的DataTemplate ...我不知道如何处理它
提前致谢!
xaml - SemanticZoom.ZoomedOutView 中的 DataTemplateSelector
我有一组不同类型的项目,所有项目都继承自一个共同的基本类型(ItemBase)。我的每个组都有一个 Items 类型的集合ObservableCollection<ItemBase>
。
在我的 SemanticZoom.ZoomedInView 中,我可以设置一个 DataTemplateSelector,在 SelectTemplateCore() 中,我可以强制转换 item 参数来确定要应用哪个模板。
但是,在我的缩小视图中,对象作为 DependencyObjects 传递,我终其一生都无法弄清楚如何获取传入的数据来确定要使用的模板。
要在缩小视图中设置 GridView 的项目源,我使用
因为这似乎是使 zoomedin 和 zoomedout 视图同步的唯一方法(当您单击缩小视图中的组时,它应该将我带到 zoomedinview 中的适当位置以查看该组的详细信息。
那么,在获取 SelectTemplateCore() 中的实际组方面,我是否遗漏了一些明显的东西,或者如果没有更好的方法来绑定 ZoomedOutView 的 ItemsSource?
c# - 什么控件应该适合显示画布?
我找不到更好的标题。
我有很多画布图纸,根据程序中的参数,应该显示相应的画布
前任:
我在互联网上阅读的一种方法是......这些画布中的每一个都应该在 a 内DataTemplate
,并使用 aDataTemplateSelector
来选择各自的DataTemplate
.
我想我可以用来显示的控件是 a ContentControl
,但我的问题是,我应该在 Content 属性中绑定PARAMATER
,对吗?
wpf - 如何为使用 DataTemplateSelector 选择的 DataTemplate 中的项目设置样式
我创建了一个 Listview,它使用两个不同的数据模板来显示列表中的不同项目,一个是标签和一个按钮,另一个只是一个标签。使用 DataTemplateSelector 选择模板。我的问题是如何将样式应用于两个数据模板,例如在悬停时突出显示而不重复 xaml?
mvvm - 自己的 DataTemplateSelector MVVM
我正在使用带有 ModelView-First 方法的 MVVM 模式。到目前为止,这工作正常。现在我有一个 UserControl(视图),它应该根据位于我的 ViewModel 中的属性显示各种内容。
首先,我尝试使用 DataTemplates 和 DataTemplateSelector 解决问题(请参阅本教程),效果很好。但我对解决方案不满意,因为那时我有一个类(被覆盖的 DataTemplateSelector),它没有连接到 ViewModel 并且无法从模型中填充。
所以我尝试创建一个自己的 TemplateSelector,它使用 ViewModel 中的一个属性。不幸的是,DataTrigger 没有触发。从 CheckBox 到 ViewModel 的绑定也可以工作,但不能在 DataTrigger 上工作(即使设计者也找不到此路径)。
好的,请看代码:
当然,我可以将任务分成两个进一步的内容控件,但如果相同的内容相交,我不想维护它们。那么有人可以提出任何建议吗?
最好的问候,并提前感谢!
c# - DataTemplateSelector / 绑定不起作用
这是我的视图模型:
这是我的 MainWindow(MainViewModel 实例设置为 Windows 的 DataContext):
PanesTemplateSelector-Class 的代码:
计算器控件的内容:
CalculatorTemplateSelector-Class 的代码:
第一个 TemplateSelector 正在工作。选择了正确的模板,我可以看到计算器控件。但是 Calculator-Control 中的 TemplateSelector 不起作用。在 CalculatorTemplateSelector.SelectTemplate 中,项目参数始终为空。但我需要 CalculatorViewModel 实例。我想我的问题是一个绑定问题,但我没有找到解决方案。有任何想法吗?