1

我是 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 代码中完成。

请帮助,真的坚持这个!

4

2 回答 2

0

解决了!

用户控件从其父控件继承数据上下文,因此只需要做

dim job as Database.Model.Job = DataContext

dim JobLocation as string = job.JobLocation

希望这对其他人有帮助!

于 2012-12-03T12:31:12.220 回答
0

与其尝试从控件中获取绑定值、对其进行操作并将新值应用回控件,不如操作底层对象中的值(并让绑定框架更新控件)。如果您不希望底层对象发生更改,您可以在 ValueConverter 中执行您想要执行的工作并将其应用于您的绑定。

ValueConverter 选项仅在您所做的工作是微不足道的且具有演示性质的情况下才真正合适。否则,最好设置一个单独的对象用于绑定,并在那里完成工作。对于单独的对象,您需要考虑在源数据对象更改时更新它的机制(如果合适/需要)。

于 2012-12-02T22:33:26.570 回答