我正在尝试将 Forderground 依赖属性绑定到我的 UIControl,以便它以用户希望的颜色绘制。由于 myUiControl.Foderground 自动完成,我想我可以像这样将它绑定到 XAML 文件中:
{Binding ElementName=rootControl, Path=Forderground}
调试 VS 时说它找不到与此 DependencyProperty 绑定的源。但我不知道为什么会这样。
另外,如何在调试时列出对象的所有依赖属性?
我正在尝试将 Forderground 依赖属性绑定到我的 UIControl,以便它以用户希望的颜色绘制。由于 myUiControl.Foderground 自动完成,我想我可以像这样将它绑定到 XAML 文件中:
{Binding ElementName=rootControl, Path=Forderground}
调试 VS 时说它找不到与此 DependencyProperty 绑定的源。但我不知道为什么会这样。
另外,如何在调试时列出对象的所有依赖属性?
您能否确认您的“rootControl”元素在 xaml 标记中的定义早于您的 Binding 持有者?通常绑定绑定到较早声明的元素。
如果您的意思是在调试时使用 ImmediateWindow 和 IntelliSense,那么每个依赖属性元数据通常都有公共静态访问修饰符。例如,您可以键入“控制”。并观察所有相应的依赖属性、路由事件和附加属性成员。
希望这可以帮助。
更新:如果以下内容对您来说还不够,请尝试下载此示例并查看它。
ElementName 需要设置为根控件的“x:Name”,Path 需要设置为要绑定到的根元素上的属性。如果没有名称,它将找不到您所指的元素(因此出现初始错误),并且没有 Path 它不会绑定到正确的属性(在运行时检查您的输出是否有错误)。
试试这个:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid x:Name="root" Background="Green">
<Button Background="White" Margin="100">
<TextBlock Background="{Binding ElementName=root, Path=Background}" Text="TESTING TESTING"/>
</Button>
</Grid>