如何在WPF中的项模板中获取集合的Binding元素?

时间:2012-03-21 14:05:33

标签: c# wpf xaml data-binding

我有一个自定义控件RadCoverFlow,它将Image的集合作为itemsSource。

<StackPanel Orientation="Vertical" Background="Black">
    <telerik:RadCoverFlow x:Name="coverFlow"
                          ItemsSource="{Binding ViewImages, Mode=OneWay}"
                          ItemTemplate="{StaticResource ImageTemplate}"
    </telerik:RadCoverFlow>
</StackPanel>

我想使用数据模板定义图像的widh,高度和其他几个属性。我的问题是在数据模板中,我需要为每个图像指定一个源,但是该源已经在代码中指定。

    <DataTemplate x:Key="ImageTemplate">
        <Image Source="" Width="100" Height="100" Stretch="Uniform" telerik:RadCoverFlow.EnableLoadNotification="True" />
    </DataTemplate>

我怎样才能重新指定Source,或者像{Binding ViewImages [i]}那样将源绑定到Source,在这种情况下我会是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

理想情况下,您的业务对象和用户界面应完全分开,因此ItemsSource不应包含Image UI对象

但是,说,尝试使用隐式样式来设置属性

<telerik:RadCoverFlow.Resources>
    <Style TargetType="{x:Type Image}">
        <Setter Property="Height" Value="100" />
        <Setter Property="Width" Value="100" />
        <Setter Property="Stretch" Value="Uniform" />
        <Setter Property="telerik:RadCoverFlow.EnableLoadNotification" Value="True" />
    </Style>
</telerik:RadCoverFlow.Resources>