0

我有一个基类和另一个从基类继承的类。基类有一个 DependencyProperty(比如“MyDPProperty”):

public int MyDPProperty
 { 
   get { return (int)GetValue(MyDPPropertyProperty); } 
   set { SetValue(MyDPPropertyProperty, value); } 
 } 
public static readonly DependencyProperty MyDPPropertyProperty =DependencyProperty.Register("MyDPProperty", typeof(int), typeof(ownerclass), new UIPropertyMetadata(0));

在 Window 的构造函数中,我写道:

SomeWpfWindow.DataContext = new ChildClass();

在我的 Window 的 XAML 代码中,我有:

<TextBox x:Name="txt"
        Text="{Binding Path=MyDPProperty, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />

现在,绑定不起作用,尽管当我在它后面的代码中绑定它时:

SomeWpfWindow.txt.SetBinding(TextBox.TextProperty
                        , new Binding("MyDPProperty")
                        {
                            Source = InstanceOfChildClass,
                            UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
                            Mode = BindingMode.TwoWay
                        });
4

1 回答 1

0

您正在后面的代码中绑定一个属性。您可以为窗口命名(例如 Name="winName")并在绑定中定义 ElementName:

 x:Name="txt" Text="{Binding ElementName=winName, Path=MyDPProperty, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" /> 

还有其他方法,例如您可以添加一个静态资源。此链接可能会有所帮助:

http://blog.jayway.com/2011/05/17/bind-from-xaml-to-property-defined-in-code-behind/

于 2012-04-09T07:04:51.127 回答