【发布时间】:2011-01-30 15:36:15
【问题描述】:
我正在努力让我的数据绑定正常工作。我有理由相信我正在努力完成的事情无法完成,但我们会看到我得到什么答案。
我有一个用户控件。此 UserControl 仅包含一个按钮。现在在后面的代码中,我有一个属性名称 IsBookmarked。当设置 IsBookmarked 时,将运行代码以动画按钮的外观。这个想法是您单击按钮,它会在视觉上发生变化。我们将此 UserControl 称为 Bookmark 控件。
现在我有了另一个控件,我们将其称为 FormControl。我的 FormControl 包含一个子 Bookmark 控件。我试图在我的书签控件上进行数据绑定,但它不起作用。这里有一些代码可以帮助你。
这是我的控件的 XAML 和 Loaded 事件处理程序。如您所见,它包含一个作为自定义控件(书签)的子元素。因此,一旦加载此控件,它的 DataContext 就会设置为 Employee 对象的新实例。 Silverlight 还将我的子书签控件的 DataContext 属性设置为相同的实例。我已经通过调试验证了这一点。如果我的父级设置了有效的 DataContext,那么为什么我的子级控件(书签)属性数据不能绑定到它?
<UserControl ......>
<q:Bookmark x:Name="BookMarkControl1" IsBookmarked="{Binding IsSiteBookmarked}" />
</UserControl>
public void Control_Loaded(object sender, EventArgs e)
{
DataContext = new Employee { IsSiteBookmarked = True };
}
这是我下面的自定义控件。显然它包含的内容不止这些,但为了便于阅读,我已将其缩减为我尝试数据绑定到的属性。
//this is the bookmark control. I've included this control within another control, and I'm trying to databind to properties within my parents DataContext
public partial class Bookmark : UserControl
{
bool _IsBookmarked= false;
public bool IsBookmarked
{
get {return _IsBookmarked;}
set {
_IsBookmarked= value;
SwitchMode(value);
}
}
}
更新
有一些我应该提到的 javascript 错误。 Firebug 报告 AG_E_PARSER_BAD_PROPERTY_VALUE 异常。我的数据绑定似乎还没有工作。
【问题讨论】:
-
IsBookmarked是作为依赖属性实现的?此外,您的代码有点令人困惑,您向我们展示了一个名为Bookmark的部分类,它具有IsSiteBoolmarked属性,但您的 Xaml 正在分配给IsBookmarked属性。IsSiteBookmarked属性实际上似乎是一个名为Employee的类的属性。我认为您需要整理一下这个问题并添加更多细节。 -
添加了更多信息。希望对您有所帮助。
标签: silverlight data-binding datacontext