【发布时间】:2013-02-12 16:11:08
【问题描述】:
我对 C# 和 WPF 完全陌生,我正在努力在数据绑定方面做到最好。我有一个实现 INotifyPropertyChanged 的 MyClass;所以每次我更改属性值时,都会在我的 UI 中更新。然后我将堆栈面板的 DataContext 绑定到 MyClass 的对象。像这样:
<StackPanel Name="stackPanel1" DataContext="{Binding}">
<TextBlock Name="textBlock1" Text="{Binding Path=Title, Mode=OneWay}" />
</StackPanel>
在后面的代码中我这样做:
item = new MyClass();
stackPanel1.DataContext = item;
并且绑定工作正常。如果我用另一个替换我当前的绑定源对象,我必须通过再次键入 datacontext 绑定来手动设置它:
item = new MyClass();
stackPanel1.DataContext = item;
item1 = new MyClass();
.
. //manipulate item1
.
if (item1 is ok)
item=item1;
stackPanel1.DataContext = item;
有没有更好的方法来替换我的源对象并更新所有关联的绑定?
【问题讨论】:
-
首先,设置
stackPanel1.DataContext = item1;不是绑定。它只是设置一个属性。然后,XAML 中的DataContext="{Binding}"没用,因为您在代码中设置了 DataContext。 -
I'm totally new to C# and WPF- 这些东西太多了,不能一起学习。在尝试在 WPF 中做任何事情之前,您最好先扎实 C#,做一些控制台应用程序,以便熟悉框架和语言,因为 WPF 本身是一个复杂的框架,不适合没有经验的开发人员。
标签: c# wpf data-binding