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



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

有一个带有数据模板的列表框,我可以使用 Text="{Binding JobLocation}" 绑定和显示数据,这工作正常。

我还有一个用户控件,它也可以使用 Text="{Binding JobLocation}" 绑定到 JobLocation!

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

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

这将在用户控制代码中完成。

请帮忙,真的坚持了!

与其

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

只有当您所做的工作是琐碎的并且具有表现性质时,ValueConverter 选项才真正合适。否则,最好设置一个单独的对象来用于绑定,并在那里完成工作。对于单独的对象,您需要考虑在源数据对象更改时更新它的机制(如果适当/需要)。

解决了!

用户控件从其父级继承数据上下文,因此只需执行

dim job as Database.Model.Job = DataContext
dim JobLocation as string = job.JobLocation

希望这对其他人有所帮助!

最新更新