从代码中分配绑定数据,而不是xaml

时间:2012-12-02 21:16:08

标签: windows-phone-7 binding user-controls

我是WP7 Silverlight的新手,有一个简单的问题。

我有一个带有DataTemplate的ListBox,我可以使用Text =“{Binding JobLocation}”绑定和显示数据,这样可以正常工作。

我还有一个UserControl,它也可以使用Text =“{Binding JobLocation}”绑定到JobLocation!

我的问题是,在显示之前我需要在JobLocation上做一些工作,所以我想将它保存到变量中,如: -

Dim jobLocation as string ="{Binding JobLocation}"
jobLocation = // do the work on it
txtJobLocation.Text = jobLocation

这将在UserControl代码中完成。

请帮助,真的坚持这个!

2 个答案:

答案 0 :(得分:0)

不是试图从控件获取绑定值,操纵它并将新值应用回控件,而是应该操纵底层对象中的值(并让绑定框架更新控件)。如果您不希望更改基础对象,则可以在ValueConverter中执行要执行的工作并将其应用于绑定。

如果您正在进行的工作是微不足道的,并且具有表现性,那么ValueConverter选项才非常合适。否则最好设置一个单独的对象用于绑定,并在那里完成工作。使用单独的对象时,您需要考虑在源数据对象发生更改时更新它的机制(如果适用/需要)。

答案 1 :(得分:0)

解决了!

用户控件从其父级继承datacontext,因此只需执行

dim job as Database.Model.Job = DataContext

dim JobLocation as string = job.JobLocation

希望这有助于其他人!