我在将图像绑定到Radiobuttion时遇到了一些问题。我只想通过XAML绑定它,我所做的就是这个..我创建了一个带有5个radiobutton的Stackpanel ..
<StackPanel Name="StackPanel1" Grid.Row="3" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center">
<RadioButton GroupName="Group1" Content="1"
HorizontalAlignment="Left"
Width="35" BorderThickness="1,0,0,1"
IsChecked="CodeBehindBinding..." />
<RadioButton GroupName="Group1" Content="2"
HorizontalAlignment="Left" VerticalAlignment="Top"
Width="35" BorderThickness="1,0,0,1"
IsChecked="{CodeBehindBinding..." />
......
XAML中的其他地方我试图将Label绑定到组。一起..
<Image Grid.Row="3" Grid.Column="2" HorizontalAlignment="Left" Height="25" VerticalAlignment="Top" Width="25" Source="/*****;component/Resources/Checked.png"
Visibility="{Binding IsChecked, BindingGroupName=StackPanel1.Group1}"
/>
...... Nothinig发生了。 ;-)图像永久可见。
我该如何解决?希望你能帮忙.. Greetz Iki
答案 0 :(得分:7)
我假设“IsChecked”属性是布尔值。 要绑定Visibility属性,必须绑定到Visibility type属性或使用converter。
如果您不想使用转换器,则需要声明可见性通知属性:
private Visibility isChecked= Visibility.Visible;
public Visibility IsChecked
{
get { return isChecked; }
set
{
isChecked = value;
RaisePropertyChanged("IsChecked");
}
}
如果您想继续使用布尔参数,请使用 Visibility converter
答案 1 :(得分:3)
这里有两件事不对。首先,您需要将Name
分配给要用作绑定源的RadioButton,并将其用于绑定的ElementName
属性。
<RadioButton x:Name="radioButton1" ... />
然后,您的绑定还需要从bool
到Visibility
的转换器。你可以使用WPF的BooleanToVisibilityConverter:
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Window.Resources>radia
<Image Visibility="{Binding IsChecked, ElementName=radioButton1,
Converter={StaticResource BooleanToVisibilityConverter}}" ... />