将UWP控件绑定到属性

时间:2017-07-31 09:16:20

标签: c# uwp uwp-xaml

我正在开发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中做到这一点?

2 个答案:

答案 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是您的用户控件的属性。