logeeks
logeeks

Reputation: 4979

providing source for an Image control

I need to databind into a element inside my custom class. i've given the ItemSource as the ObservableCollection of telerik:RadTransitionControl via an attached property. However, I need to provide the image member as the source to Image control. I tried the following method and was unsuccessful.

<Grid Background="Black">
        <telerik:RadTransitionControl   x:Name="radControl" adRotator:AdRotatorExtensions.ItemChangeDelay="0:0:3" 
                                      adRotator:AdRotatorExtensions.CurrentSelectedIndex="0"
                                      adRotator:AdRotatorExtensions.IndexChanged="{Binding TopItemCommand, Mode=OneWay}"
                                      adRotator:AdRotatorExtensions.ItemsSource="{Binding Path=ImagePaths}"
                                      VerticalAlignment="Center" 
                                      HorizontalAlignment="Center" Width="650">
            <telerik:RadTransitionControl.Transition>
                <telerik:MotionBlurredZoomTransition />
            </telerik:RadTransitionControl.Transition>

            <telerik:RadTransitionControl.ContentTemplate>
                <DataTemplate>
                    <Image Source="{Binding Path=ImagePaths.AdImage}" />
                </DataTemplate>
            </telerik:RadTransitionControl.ContentTemplate>

        </telerik:RadTransitionControl>
    </Grid>

Upvotes: 0

Views: 454

Answers (1)

Muad&#39;Dib
Muad&#39;Dib

Reputation: 29286

an ImagePaths object is already set as the DataContext for the item. this means that the binding is already pointing (so to speak) at an instance of the object. so, when you tell it to bind on ImagePaths.AdImage it does not know how to find the property you are looking for. Good news is, all you have to do is provide the path on the object-- remove the ImagePaths part (and the dot) and you should be good to go.

for example...

class something 
{
  public string someImage {...}
}

<DataTemplate> <!--------- the data context of this item is an instance of
                           my "something" class, so i need to set the path
                           to be the property on the object --->

   <Image Source="{Binding Path=someImage}" />

</DataTemplate>

here is a very helpful article on debugging bindings in WPF
for more info here is an excellent article on MSDN
here is a datatemplate article from Dr. WPF

Upvotes: 1

Related Questions