0

假设我有一个将 DataContext 设置为它的 VM 的 UserControl

现在假设 UserControl 定义了一个依赖属性,我想最初绑定到 ViewModel 上的一个属性......如果顶级元素是 UserControl,我将如何在 UserControl 的 XAML 中引用这个属性?

<UserControl x:Class="TestApp1.TestControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:TestApp1"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300" x:Name="test">

</UserControl>

依赖属性:

    public static readonly DependencyProperty MyTestPropProperty= null;

    public string MyTestProp
    {
        get { return (string)GetValue(MyTestPropProperty); }
        set { SetValue(MyTestPropProperty, value); }
    }

    static TestControl()
    {
        MyTestPropProperty= DependencyProperty.Register(
            "MyTestProp",
            typeof(string), 
            typeof(TestControl), 
            new FrameworkPropertyMetadata());
    }

在 XAML 上,我希望能够使用 MyTestProp={Binding yadda yadda} 但我无法从 XAML 中引用它

4

1 回答 1

0

只需在根节点中添加属性,如下所示:

<Usercontrol xmlns=blablabla MyProperty="{Binding MyViewModelProperty}">

编辑:这不起作用,因为没有对新创建的属性的 XAML 引用。<Style TargetType="TestControl">从外部上下文(包含此用户控件的那个)中使用或设置属性

于 2012-11-06T19:37:16.543 回答