【发布时间】:2015-04-28 17:10:41
【问题描述】:
我对数据绑定有点陌生。我设法进行了单向数据绑定,但在进行双向数据绑定时遇到了一些麻烦。
我制作了1)a 用户控件,其中包含一些文本块,
2)具有一些字符串属性的类,
3)使用此类生成具有这些属性的对象的 ObservableCollection,4)由 ObservableCollection 生成的列表视图,并将用户控件作为项目的数据模板。
为了将类的属性与用户控件的 TextBlock 绑定,我在 XAML 中编写了以下代码:
<TextBlock x:Name="MyTextBlock" Text="{Binding TextBlock_Property}" />
MyTextBlock 是用户控件内的文本块,TextBlock_Property 是我创建的类的属性之一。
我也试过Text="{Binding TextBlock_Property, Mode=TwoWay}",但没有发现任何区别。
注意:当我更改创建对象的属性时,文本块也会更改,但是当我更改文本块内容时,属性不会更新。
更新:我做的课是
class MyClass
{
public string Title { get; set; }
public string TextBlock_Property { get; set; }
public MyClass(string title, string textBlock_Property)
{
Title = title;
TextBlock_Property = textBlock_Property;
}
}
【问题讨论】:
-
W8 我要搜索这个 Dependency 属性,因为不确定它是什么,没有使用过类似的东西。
-
我不认为这是一个依赖属性问题。看起来他只是绑定到一个属性。我们可以看到具有您属性的 VM 或代码吗?如果你这样做了,你在哪里设置你的数据上下文?
-
@user2975038 更改文本块内容是什么意思?
TextBlock是只读控件,不允许用户输入 -
@user2975038 在 WPF 中处理数据绑定对象时,不应设置
TextBlock.Text = "Something",而应设置MyClass.TextBlock_Property = "Something",其中MyClass是 TextBlock 对象的数据上下文和 Text 的源属性绑定
标签: c# wpf xaml data-binding 2-way-object-databinding