1

我的项目,我想使用一个用户控件,它是一个文本块和一个文本框的组合。我可以为用户控件创建一些自定义属性,例如

  public string Caption
    {
        get
        {
            return this.Block.Text;
        }
        set
        {
            this.Block.Text = value;
        }
    }

    public string Value
    {
        get
        {
            return this.Box.Text;
        }
        set
        {
            this.Box.Text = value;
        }
    }

我还想在这个用户控件中设置文本块的绑定。我知道我们必须为此使用依赖属性,如下所示:

  public string fieldValue
    {
        get
        {
            return (string)GetValue(fieldValueProperty);
        }
        set
        {
            SetValue(fieldValueProperty, value);
        }
    }          
    public static readonly DependencyProperty fieldValueProperty =
        DependencyProperty.Register("fieldValue", typeof(string), typeof(TextBlox), 
        new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); 

在我的实际应用中:

  <my:TxtBlox HorizontalAlignment="Left" Name="txtBlox1"                      
                 fieldValue="{Binding Path=ProdCode,Mode=TwoWay}"
                 VerticalAlignment="Top" Width="228" />

我正在将此控件的容器的数据上下文设置为数据库对象。

 oProd = dt.ProdInfoes.First();
        Main.DataContext = oProd;

但我无法让它发挥作用。有什么建议么?

4

1 回答 1

2

如果要绑定到它们,则必须创建 DependencyPropertiesCaption而不是普通属性。Value在您的用户控件 xaml 中,您必须将绑定设置为具有绑定的属性ElementName。看到这个帖子

于 2012-07-20T11:10:43.553 回答