问题标签 [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.

0 投票
1 回答
97 浏览

c# - 样式和绑定行为奇怪

对。我有一个小程序(复制了我的问题)。基本上,它会尝试绑定到它的样式对象的某些属性。它有点工作:它给了我默认值(来自依赖属性)。我一直在想这可能是因为Style'sRelativeSource SelfTextBox它的样式不同。但我不知道。我试过调试这个,一次又一次地检查 XAML 中设置的值是否实际设置。问题是,它可以使用较小的测试程序。这只是一个扩大规模。我不知道出了什么问题。谢谢!

重现此问题的代码:

主窗口.xaml

主窗口.xaml.cs

测试字典.xaml

我不知道这里出了什么问题,因为它的缩小版本非常有效。可能有一些我忽略了的东西,当我找到它时会很明显。但是我现在找不到了。

编辑:好吧,看来我很愚蠢。原始版本(此处)使用 a Trigger,这意味着它获取父文本框的值。现在的问题是:我怎样才能让它工作?

谢谢你的时间!

0 投票
1 回答
3238 浏览

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...所以我读了。

0 投票
1 回答
11182 浏览

wpf - WPF - 风格中的相对源

我的目标是将标签的内容-属性绑定到应用样式的元素标签-属性。但我的解决方案似乎不起作用:


我的风格:

我的文本框:

0 投票
3 回答
10229 浏览

c# - 在构造函数中设置 DataContext=this 和在 WPF 中绑定到 {RelativeSource Self} 之间的区别?

下一个代码按预期工作:

AskWindow.xaml:

AskWindow.xaml.cs:

但是如果DataContext='{Binding RelativeSource={RelativeSource Self}}'在 Window 标签和注释行中设置DataContext=this设置,我们会得到一个空窗口。为什么?

AskWindow.xaml:

AskWindow.xaml.cs:

0 投票
2 回答
2307 浏览

c# - WPF RelativeSource 找不到资源

我正在使用 WPF 制作自定义控件,我需要检索在后面的用户控件代码中定义的属性,所以我使用了 RelativeSource,但是我收到了这个错误

我的 XAML 代码(嵌套树)是:

在用户控件的代码隐藏中,我定义了我的属性

关于如何检索我的属性以将其用作我的 satagrid 列的头功能的任何想法?谢谢安德里亚

0 投票
0 回答
264 浏览

wpf - 多个内容,Parent 为空

我正在尝试实现一个承载两个内容区域的 UserControl。一个用于按钮区域,一个用于通用内容区域。但是,当我尝试使用它时,附加的 ButtonArea 没有 Parent 集,因此 RelativeSource Lookup 失败。只有在弹出窗口中使用控件时才会出现此问题,如果在弹出窗口中未使用控件,则一切正常。

这是 UserControl 的控制模板:

这是绑定日志:

如您所见,查找适用于普通内容,但对于其他按钮区域内容,它会失败。例如,当我使用 Canvas 而不是 Popup 并尝试在 Canvas 上设置一些属性时,它会起作用。当我调试时,我可以看到 VisualTreeHelper.GetParent 为网格返回 null。有人知道为什么在使用 Popup 时会失败吗?

0 投票
1 回答
1186 浏览

wpf - 使用相对绑定将道具 Window.ActualHeight 绑定到 DoubleAnimation.To 道具

我尝试使用相对绑定并将 Window.ActualHeight 属性绑定到 DoubleAnimation.To 属性。

相对绑定不起作用,但如果我使用 ElementName 的绑定,它会起作用。

不行:

这项工作:

可以使用相对绑定到 Window.ActualHeight 属性吗?

编辑:

我再次测试了路由事件 Ellipse.Loaded 动画不起作用,但如果我将路由事件更改为 MouseEnter 动画工作。我发布了所有项目。

样本下载

感谢

0 投票
2 回答
412 浏览

c# - WPF如何从同一个viewmodel访问其他变量?

要显示项目,Telerik:RadGridView我通常使用DataContext="{Binding [someViewModel]}"ItemSource="{Binding objectList, Mode=TwoWay}"

对于我的专栏,我将访问objectfield. 整体情况如下:

想象一下将有 10 个项目objectList。中的每个项目objectList都有一个变量isChecked来操作复选框IsChecked属性。

我在同一个视图模型中有另一个变量,命名enabledVar为控制十个复选框IsEnabled属性。enabledVar不是其中的一部分,objectList但我无法获得价值。我可以知道如何处理这种情况吗?

更新:

我找到了一些新的方向,但不确定它是否有帮助。

但当然,仍然失败。

任何帮助将不胜感激。

0 投票
1 回答
229 浏览

c# - 如何与祖先和自我的相对来源绑定?

我有以下代码:

MyDictionary - 现在是一个键为枚举类型的字典,如果我将 SecDic 和 ThirdDic 从字典更改为 BitmapImages,则此绑定有效。但我希望 MyDictionary 中的每个键(枚举)都有不同的真/假图像。所以我试着写:

但它不起作用,因为“键”属于图像(MyDictionary)的数据上下文,并且我将相对源更改为项目控件,因此没有“键”。有什么建议么?

0 投票
4 回答
4618 浏览

c# - 当依赖属性具有 RelativeSource 绑定时,GetTemplateChild 返回 null

我创建了一个自定义控件MyTextBox,它继承自TextBox. 它有一个与之关联的样式,其中包含一个命名控件:

MyTextBox有一个依赖属性,当设置时,将其值传播到SomeControl

这在进行简单绑定时可以正常工作,如下所示:

但是当我使用RelativeSource使用更花哨的绑定时,如下所示:

该方法me.GetTemplateChild()返回null。也就是SomeControl找不到。

为什么?

我所做的一个观察是,当它具有 时RelativeSourceMyParameter首先设置依赖属性。也就是说,如果我这样做:

MyParameter属性(奇怪地)设置在之前OtherParameter。使用简单绑定,它们按照声明的顺序设置,正如预期的那样。

(如您所见,我的代码已从不相关的内容中删除。希望我已经包含了所有重要的内容。)