草庐IT

DataTemplate

全部标签

c# - 停止 TabControl 重新创建其子项

我有一个绑定(bind)到TabControl的View模型的IList。此IList在TabControl的生命周期内不会更改。每个View模型都有一个DataTemplate,它在ResourceDictionary中指定。DataTemplate中指定的每个View都是资源密集型的,足以创建我宁愿每个View只创建一次,但是当我切换选项卡时,相关View的构造函数被调用。据我所知,这是TabControl的预期行为,但我不清楚调用构造函数的机制是什么。我看过asimilarquestionwhichusesUserControls但是那里提供的解决方案将要求我绑定(bind)到不

c# - 停止 TabControl 重新创建其子项

我有一个绑定(bind)到TabControl的View模型的IList。此IList在TabControl的生命周期内不会更改。每个View模型都有一个DataTemplate,它在ResourceDictionary中指定。DataTemplate中指定的每个View都是资源密集型的,足以创建我宁愿每个View只创建一次,但是当我切换选项卡时,相关View的构造函数被调用。据我所知,这是TabControl的预期行为,但我不清楚调用构造函数的机制是什么。我看过asimilarquestionwhichusesUserControls但是那里提供的解决方案将要求我绑定(bind)到不

c# - WPF MVVM 为什么使用 ContentControl + DataTemplate View 而不是直接的 XAML 窗口 View ?

为什么会这样?主窗口.xaml:将您的ExampleView.xaml设置为:然后像这样创建窗口:publicpartialclassApp:Application{protectedoverridevoidOnStartup(StartupEventArgse){base.OnStartup(e);MainWindowapp=newMainWindow();ExampleVMcontext=newExampleVM();app.DataContext=context;app.Show();}}什么时候可以这样?App.xaml:(设置启动窗口/View)ExampleView.xam

c# - WPF MVVM 为什么使用 ContentControl + DataTemplate View 而不是直接的 XAML 窗口 View ?

为什么会这样?主窗口.xaml:将您的ExampleView.xaml设置为:然后像这样创建窗口:publicpartialclassApp:Application{protectedoverridevoidOnStartup(StartupEventArgse){base.OnStartup(e);MainWindowapp=newMainWindow();ExampleVMcontext=newExampleVM();app.DataContext=context;app.Show();}}什么时候可以这样?App.xaml:(设置启动窗口/View)ExampleView.xam

WPF之浅谈数据模板(DataTemplate)

数据模板有什么用简而言之,数据模板能让你更方便、更灵活的显示你的各类数据。只有你想不到,没有它做不到的(感觉有点夸张,实践之后,你就觉得一点不夸张😎)。直接对比下效果:无数据模板应用了数据模板好了,下面我们一步一步来看看数据模板如何做到化腐朽为神奇的!一些前置条件假设你已了解了MVVM设计模式假设你已了解了一些数据绑定知识假设你已了解了一些样式知识代码准备首先准备一个Model,代码如下:publicclassEmployee{publicstringName{get;set;}publicSexSex{get;set;}publicstringJob{get;set;}publicstrin

数据错误26带DataTemplate和ItemTemplate

我有一个带有单个特定选项卡的TabControl,并使用其他用户控件绑定了与VM集合的集合。为此,我使用控件资源中定义的CompoSiteCollection和DataTatemplate,根据VM类型(充当ContentTemplate)选择正确的用户控件。我还设置了一个ItemTemplate,以定义标签项目的名称,但在资源中未定义,因为我猜想会与“contentTemplate”的名称进行冲突。它可以正常工作,但是我请参阅以下错误:System.Windows.DATA错误:26:对于ItemScontrol的容器类型的项目,ItemTemplate和ItemTemplatesElect

c# - WPF DataTemplate 绑定(bind)取决于属性的类型

我有一个绑定(bind)到分层数据模板的对象集合,我的每个对象都有一个特定类型的属性(我们称之为属性“A”)。这种类型因每个对象而异。如果数据模板包含图像和一些文本,根据属性“A”的类型更改显示在模板中的图像的最佳方法是什么。我知道我可以将它插入一个转换器并在代码中手动进行绑定(bind)转换,但是有了WPF中可用的所有绑定(bind)工具,我认为可能有更好的方法。 最佳答案 如果您创建本地数据模板并使用ContentPresenter,那么在您的数据模板中执行此操作非常简单。此模板呈现MyObject类型的对象,显示图像,其来源由

c# - 在 DataTemplate 中绑定(bind) ElementName

我正在尝试绑定(bind)一个依赖于同一DataTemplate中控件的属性。举例说明:但是PercentageConverter中的属性从未通过此设置,我不明白为什么。这是命名范围问题吗?如果是这样,我认为这无关紧要,因为它在同一个DataTemplate中如果不是,我做错了什么? 最佳答案 这可能是名称范围问题,绑定(bind)不是框架元素,其中的任何对象都不会共享外部名称范围,任何树中的绑定(bind)也不会共享,因此相对源绑定(bind)也应该失败。您可以尝试使用x:Reference相反,它使用不同的机制:{Binding

c# - 如何访问 XAML DataTemplate 中的控件?

我有这个翻转View:我想找到当前选定索引的img1。在搜索它时,我在此处的一些帖子中找到了此方法:privateDependencyObjectFindChildControl(DependencyObjectcontrol,stringctrlName){intchildNumber=VisualTreeHelper.GetChildrenCount(control);for(inti=0;i(child,ctrlName);if(nextLevel!=null)returnnextLevel;}}returnnull;}它返回flipview第一个索引上的图像,但我需要当前选定索

c# - 在 ItemsControl DataTemplate 中设置 Canvas 属性

我正在尝试将数据绑定(bind)到此ItemsControl:通过使用此DataTemplate,我尝试将我的Node元素单独放置在Canvas上:但是,它没有按预期工作。我所有的节点元素都在同一位置彼此重叠绘制。关于如何实现这一点有什么建议吗? 最佳答案 附加属性仅适用于Canvas的直接子级。ItemsControl会将ContentPresenter控件作为其直接子控件,因此您可能还想为其添加样式: 关于c#-在ItemsControlDataTemplate中设置Canvas属性