如何在DataTemplate中绑定radiobutton的checked属性?

时间:2011-05-08 05:22:39

标签: silverlight silverlight-4.0

这是我的DataTemplate:

<DataTemplate x:Key="DataTemplateThemes">
            <Grid Width="160" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5,0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="28.3336664835612"/>
                    <RowDefinition Height="161"/>
                    <RowDefinition Height="Auto" />
                    <RowDefinition/>

                </Grid.RowDefinitions>
                <TextBlock x:Name="tbThemeName" HorizontalAlignment="Left" Margin="2" Grid.Row="2" TextWrapping="Wrap" 
                           Text="{Binding ThemeName}" FontSize="16" FontFamily="Segoe UI" d:LayoutOverrides="Height"/>
                <Image Margin="0" Stretch="Fill" Grid.Row="1" Source="{Binding Path=ThemePicName, Converter={StaticResource imageConverter}}"/>
                <TextBlock x:Name="tbDescription" HorizontalAlignment="Left" Margin="2" Grid.Row="3" 
                           TextWrapping="Wrap" Text="{Binding ThemeDescription}" FontSize="14.667" FontFamily="Segoe UI" 
                           d:LayoutOverrides="Height"/>
                <RadioButton Content="Apply" Margin="-10,0,0,0" 
                             d:LayoutOverrides="Width, Height" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            </Grid>
        </DataTemplate>

RadioButton的IsChecked属性取决于我的ViewModel中可用的Theme属性。最初我以为我会创建一个转换器来传递当前行(datatemplate当前DataContext)的ThemeId和ViewModel的主题(这是选定的主题)的ThemeId属性,如果它们都匹配,我会检查radiobutton。但是ConverterParameter不能使用Binding表达式,因为它不是DependencyProperty。那么我该如何解决这个问题呢?

提前致谢:)

1 个答案:

答案 0 :(得分:1)

您可以实施多重绑定解决方案。我之前已经实现了这里描述的解决方案:

http://www.scottlogic.co.uk/blog/colin/2010/05/silverlight-multibinding-solution-for-silverlight-4/

然后你可以有一个转换器接受两个必需的参数。