问题标签 [relativesource]
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# - 样式和绑定行为奇怪
对。我有一个小程序(复制了我的问题)。基本上,它会尝试绑定到它的样式对象的某些属性。它有点工作:它给了我默认值(来自依赖属性)。我一直在想这可能是因为Style
'sRelativeSource Self
与TextBox
它的样式不同。但我不知道。我试过调试这个,一次又一次地检查 XAML 中设置的值是否实际设置。问题是,它可以使用较小的测试程序。这只是一个扩大规模。我不知道出了什么问题。谢谢!
重现此问题的代码:
主窗口.xaml
主窗口.xaml.cs
测试字典.xaml
我不知道这里出了什么问题,因为它的缩小版本非常有效。可能有一些我忽略了的东西,当我找到它时会很明显。但是我现在找不到了。
编辑:好吧,看来我很愚蠢。原始版本(此处)使用 a Trigger
,这意味着它获取父文本框的值。现在的问题是:我怎样才能让它工作?
谢谢你的时间!
wpf - 从子用户控件绑定到 ElementName
我必须传递 GridControl 的 CommandParameter 以进行布局的序列化。
我执行命令的按钮位于子用户控件中。
我成功地使用 RelativeSource 来访问包含 GridControl 的网格。
编辑:此按钮位于名为 GridSettings.xaml 的用户控件中。这是 Grid.xaml 的子项。
这是 Grid.xaml 父视图的相关部分。
我得到的错误:System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“网格”(名称=“GridView”)上找不到“gridControl1”属性。绑定表达式:路径=gridControl1;DataItem='Grid' (Name='GridView'); 目标元素是 'Button' (Name=''); 目标属性是“CommandParameter”(类型“对象”)
Path=gridControl1 应该真的是 ElementName=gridControl1...但是 ElementName 不适用于 RelativeSource...所以我读了。
wpf - WPF - 风格中的相对源
我的目标是将标签的内容-属性绑定到应用样式的元素的标签-属性。但我的解决方案似乎不起作用:
我的风格:
我的文本框:
c# - 在构造函数中设置 DataContext=this 和在 WPF 中绑定到 {RelativeSource Self} 之间的区别?
下一个代码按预期工作:
AskWindow.xaml:
AskWindow.xaml.cs:
但是如果DataContext='{Binding RelativeSource={RelativeSource Self}}'
在 Window 标签和注释行中设置DataContext=this
设置,我们会得到一个空窗口。为什么?
AskWindow.xaml:
AskWindow.xaml.cs:
c# - WPF RelativeSource 找不到资源
我正在使用 WPF 制作自定义控件,我需要检索在后面的用户控件代码中定义的属性,所以我使用了 RelativeSource,但是我收到了这个错误
我的 XAML 代码(嵌套树)是:
在用户控件的代码隐藏中,我定义了我的属性
关于如何检索我的属性以将其用作我的 satagrid 列的头功能的任何想法?谢谢安德里亚
wpf - 多个内容,Parent 为空
我正在尝试实现一个承载两个内容区域的 UserControl。一个用于按钮区域,一个用于通用内容区域。但是,当我尝试使用它时,附加的 ButtonArea 没有 Parent 集,因此 RelativeSource Lookup 失败。只有在弹出窗口中使用控件时才会出现此问题,如果在弹出窗口中未使用控件,则一切正常。
这是 UserControl 的控制模板:
这是绑定日志:
如您所见,查找适用于普通内容,但对于其他按钮区域内容,它会失败。例如,当我使用 Canvas 而不是 Popup 并尝试在 Canvas 上设置一些属性时,它会起作用。当我调试时,我可以看到 VisualTreeHelper.GetParent 为网格返回 null。有人知道为什么在使用 Popup 时会失败吗?
wpf - 使用相对绑定将道具 Window.ActualHeight 绑定到 DoubleAnimation.To 道具
我尝试使用相对绑定并将 Window.ActualHeight 属性绑定到 DoubleAnimation.To 属性。
相对绑定不起作用,但如果我使用 ElementName 的绑定,它会起作用。
不行:
这项工作:
可以使用相对绑定到 Window.ActualHeight 属性吗?
编辑:
我再次测试了路由事件 Ellipse.Loaded 动画不起作用,但如果我将路由事件更改为 MouseEnter 动画工作。我发布了所有项目。
感谢
c# - WPF如何从同一个viewmodel访问其他变量?
要显示项目,Telerik:RadGridView
我通常使用DataContext="{Binding [someViewModel]}"
和ItemSource="{Binding objectList, Mode=TwoWay}"
。
对于我的专栏,我将访问objectfield
. 整体情况如下:
想象一下将有 10 个项目objectList
。中的每个项目objectList
都有一个变量isChecked
来操作复选框IsChecked
属性。
我在同一个视图模型中有另一个变量,命名enabledVar
为控制十个复选框IsEnabled
属性。enabledVar
不是其中的一部分,objectList
但我无法获得价值。我可以知道如何处理这种情况吗?
更新:
我找到了一些新的方向,但不确定它是否有帮助。
但当然,仍然失败。
任何帮助将不胜感激。
c# - 如何与祖先和自我的相对来源绑定?
我有以下代码:
MyDictionary - 现在是一个键为枚举类型的字典,如果我将 SecDic 和 ThirdDic 从字典更改为 BitmapImages,则此绑定有效。但我希望 MyDictionary 中的每个键(枚举)都有不同的真/假图像。所以我试着写:
但它不起作用,因为“键”属于图像(MyDictionary)的数据上下文,并且我将相对源更改为项目控件,因此没有“键”。有什么建议么?
c# - 当依赖属性具有 RelativeSource 绑定时,GetTemplateChild 返回 null
我创建了一个自定义控件MyTextBox
,它继承自TextBox
. 它有一个与之关联的样式,其中包含一个命名控件:
MyTextBox
有一个依赖属性,当设置时,将其值传播到SomeControl
:
这在进行简单绑定时可以正常工作,如下所示:
但是当我使用RelativeSource使用更花哨的绑定时,如下所示:
该方法me.GetTemplateChild()
返回null
。也就是SomeControl
找不到。
为什么?
我所做的一个观察是,当它具有 时RelativeSource
,MyParameter
首先设置依赖属性。也就是说,如果我这样做:
该MyParameter
属性(奇怪地)设置在之前OtherParameter
。使用简单绑定,它们按照声明的顺序设置,正如预期的那样。
(如您所见,我的代码已从不相关的内容中删除。希望我已经包含了所有重要的内容。)