我正在开发UWP应用程序,我创建了新的用户控件,我想将它绑定到控件代码后面的依赖属性(没有datacontext)。
代码背后:
public Brush Fill
{
get { return (Brush)GetValue(FillProperty); }
set { SetValue(FillProperty, value); }
}
// Using a DependencyProperty as the backing store for Fill. This enables animation, styling, binding, etc...
public static readonly DependencyProperty FillProperty =
DependencyProperty.Register("Fill", typeof(Brush), typeof(MyControl), new PropertyMetadata(new SolidColorBrush(Colors.Black)));
XAML:
...
<Grid>
<Path Fill="{Binding ????}" Stretch="Fill">
...
</Path>
</Grid>
我希望我的路径的fill属性将从后面的代码绑定到属性Fill
(数据上下文应该包含不同的数据,所以我不能在这里使用它)
我怎样才能在UWP中做到这一点?
答案 0 :(得分:2)
x:Bind
可以完美地解决这个问题。注意x:Bind
将寻找属性,方法和&amp;在XAML的代码隐藏中定义的事件。它比ElementName
更具有高效性。
<Path Fill="{x:Bind Fill, Mode=OneWay}" />
答案 1 :(得分:0)
您应该能够使用绑定的ElementName属性来规避数据上下文,就像普通WPF允许的那样。
如果属性是用户控件的一部分,则需要通过x:Name为xaml中的用户控件指定名称以访问它
<UserControl [...] x:Name="Control"...`
然后使用类似{Binding ElementName=Control, Path=Fill}
的内容,只要Fill是您的用户控件的属性。