Data binding Silverlight中的Listbox绑定

Data binding Silverlight中的Listbox绑定,data-binding,silverlight-4.0,listbox,Data Binding,Silverlight 4.0,Listbox,我在silverlight页面上有一个列表框,页面的datacontext被设置为一个实例-TestQuestions,请参阅下面的代码。listbox使用一个DataTemplate,它的ItemSource是“Answers”,这是页面DataContext的一个属性,在我尝试绑定到DataTemplate中页面DataContext的一个属性“ShowAnswer”之前,一切正常。不管我怎么做,它都不会选择房产的价值 谢谢大家的帮助 Xaml: C: }在我看来,您正在尝试将UIEleme

我在silverlight页面上有一个列表框,页面的datacontext被设置为一个实例-TestQuestions,请参阅下面的代码。listbox使用一个DataTemplate,它的ItemSource是“Answers”,这是页面DataContext的一个属性,在我尝试绑定到DataTemplate中页面DataContext的一个属性“ShowAnswer”之前,一切正常。不管我怎么做,它都不会选择房产的价值

谢谢大家的帮助

Xaml:

C:


}

在我看来,您正在尝试将UIElement.Visibility绑定到布尔值。将“ShowAnswer”属性从布尔值更改为可见性属性,您应该进行设置

private Visibility showAnswer = Visibility.Collapsed; 
public Visibility ShowAnswer 
{ 
    get { return showAnswer; } 
    set 
    { 
        showAnswer = value; 
        NotifyPropertyChanged("ShowAnswer"); 
    } 
} 
编辑:

如果试图绑定到父控件的DataContext上的属性,可以执行以下操作:

<StackPanel Visibility="{Binding DataContext.ShowAnswer, ElementName=mainProtoPage}">
命名你的用户控件

例如:

<UserControl x:Class="MvvmLightProto.MainPage"
         x:Name="mainProtoPage"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         Height="700"
         Width="1200">
在上面的示例中,UserControl的名称为mainProtoPage,现在在XAML中,您可以执行以下操作:

<StackPanel Visibility="{Binding DataContext.ShowAnswer, ElementName=mainProtoPage}">

谢谢你的回复。主要问题是我无法绑定到ItemSource对象中未声明的属性。至于绑定到布尔值的可见性,我实际上使用的是一个转换器,代码中没有它。啊,我明白了。我已经编辑了我的答案,我想这就是你现在想要的。再次感谢你的回复。在资源文件中声明模板的情况如何?我尝试使用正在使用资源文件的页面的类名,但没有成功。谢谢。不要使用x:类名,请使用x:类名。在我的示例中,我使用mainProtoPage是因为我的x:Name=mainProtoPage。
<StackPanel Visibility="{Binding DataContext.ShowAnswer, ElementName=mainProtoPage}">