在Silverlight 2中,我使用的是usercontrol,它继承了它所嵌入的页面的datacontext.此datacontext包含问题文本,问题类型和答案集合.在用户控件中是一个列表框,它绑定到答案集合.如下所示:
此列表框具有相关的样式,以单选按钮或复选框的形式显示答案(我想根据问题类型隐藏或显示):
那么我的问题是:如何访问父数据上下文以获取QuestionType(因为这是用户控件datacontext本身的属性,而不是AnswerList中AnswerItem上的属性)?
或者,有没有更好的方法根据绑定值在xaml中动态切换样式?
在Silverlight 3及更高版本中,您可以使用Element to Element绑定并指向控件DataContext,然后在我的示例中指向其Threshold属性中的某些属性.
首先命名你的控件(例如在我的例子中它的x:Name ="control")
然后在ListBox ItemTemplate中的此控件内,您可以像这样访问父DataContext: