【发布时间】:2014-06-04 08:58:31
【问题描述】:
我是 WPF 的新手,我正在做一些我觉得很简单的事情。我制作了一个包含文本框的 UserControl,并且我想将 TextBox.Text 属性绑定到我的用户控件 Value 的依赖项属性。文本框正确显示 Value,如果您更改 Value 的值,文本框也会相应更新。但是,如果我更改文本框中的值,值不会更改以反映它。即使我手动将绑定模式设置为双向,它仍然只能绑定一种。我将 Value 设置为依赖属性,所以这不应该解决问题吗?
这是我的 XAML(为了便于阅读,我去掉了其他控件):
<UserControl x:Class="WindowsApp.FormBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WindowsApp">
<Grid DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=local:FormBox}}">
<TextBox x:Name="TextForm" Text="{Binding Path=Value, Mode=TwoWay}" />
</Grid>
</UserControl>
这是 c#,Visual Studio 为我自动生成了它,所以它可能有什么不对的地方
public String Value
{
get { return (String)GetValue(ValueProperty); }
set
{
SetValue(ValueProperty, value);
}
}
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(String), typeof(FormBox));
在代码的其他部分,我只是通过 Value="{Binding Whatever}" 在 XAML 中分配值
任何建议或帮助将不胜感激。谢谢。
【问题讨论】:
-
当您说“如果您更改文本框中的值,则值不会更改以反映它”,您的意思是您输入了一个新值还是通过强制输入并完全提交了该值那个文本框失去焦点?
-
另外,输出日志有错误吗?
标签: c# wpf xaml data-binding