简体   繁体   中英

How to get the Binding element of a collection inside an item template in WPF?

I have a custom control RadCoverFlow that takes a collection of Image as an itemsSource.

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

I want to define the widh, the height and a couple of other properties of the Images using a data template. My problem is that in the Data Template, I need to specify a source for each images, but that source is already specified in code.

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

How can I not re-specify the Source, or bind the source to the Source like {Binding ViewImages[i]}, what would be i in this case?

Thank You

Ideally, your business objects and your UI should be completely separate, so your ItemsSource should not have Image UI objects

But that said, try and use an implicit style to set your properties

<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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM