我创建了一个名为 SimpleText 的 UserControls,并在我的 MainWindow.xaml 中引用了它。我的 SimpleText 中唯一的东西是一个 TextBox(称为 tbox)。在我的 MainWindow 中有另一个 TextBox(称为 tbox2)。我想要实现的是在这两个文本框之间进行双向绑定。
我在 stackoverflow 中读到这里要在内部更改某些内容,您必须在 UserControls 的代码中声明一个属性(如果不需要,请纠正我):
public string MyText
{
get { return tboxUser.Text; }
set { tboxUser.Text = value; }
}
然后我可以从 MainWindow.xaml 访问 MyText 但只能给它“静态”值:
Window x:Class="WpfApplication11.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication11"
Title="MainWindow" Height="350" Width="525">
<Grid>
<!-- <local:SimpleText MyText="Hello"/> Works !-->
<local:SimpleText MyText="{Binding Text, ElementName=tbox2}"/> <!--Does not work-->
<TextBox x:Name="tbox2" Margin="0,200,0,0" Text="Text Box 2" />
</Grid>
</Window>
它给了我一个错误说:
不能在“SimpleText”类型的“MyText”属性上设置“绑定”。只能在 DependencyObject 的 DependencyProperty 上设置“绑定”。
但遗憾的是,我在这里非常新手,我不知道如何使 MyText 成为 DependencyProperty。谢谢。