2012-12-04 47 views
0

我有一個列表框,此列表框包含圖像控件。如何更改wp7中的運行時列表框圖像路徑

我想要在列表框項目的單擊事件上運行時圖像路徑。

如何更改我的圖像控制路徑?

我的代碼是這樣的:

<ListBox x:Name="TransactionList" Width="450" Height="450" Margin="0,0,0,0">  
    <ListBox.ItemTemplate > 
     <DataTemplate> 

      <StackPanel Orientation="Horizontal" Width="450" Height="auto" Margin="0,0,10,0" > 
       <StackPanel Orientation="Horizontal" Width="300" Height="auto" Margin="0,0,1,10"> 
        <TextBlock Height="35" Width="250" Margin="10,0,0,90" Text="{Binding SONGNAME}" FontSize="22" Foreground="Red" Name="tbSubCategories" /> 
        <TextBlock Height="25" Margin="-250,10,180,30" Text="SingBy:" FontSize="18" Foreground="Gray" Name="tbsingby" /> 
        <TextBlock Height="auto" TextWrapping="Wrap" Width="210" Margin="-180,50,0,70" Text="{Binding SINGBY}" FontSize="18" Foreground="Gray" Name="tbSingBy" /> 
        <TextBlock Height="25" Margin="-280,60,200,0" Text="MusicBy:" FontSize="18" Foreground="Gray" Name="tbMusicby" /> 
        <TextBlock Height="auto" TextWrapping="Wrap" Width="200" Margin="-205,100,0,30" Text="{Binding MUSICBY}" FontSize="18" Foreground="Gray" Name="tbMusicBy" /> 
       </StackPanel> 
      <StackPanel Orientation="Vertical" Height="auto" Width="auto" Margin="0,50,0,35"> 
       <Image Name="imgsubcatagorie" Width="40" Height="40" VerticalAlignment="Center" FlowDirection="LeftToRight" Source="/VodafoneAugmentedReality;component/Images/play1.png" /> 
      </StackPanel> 
     </StackPanel> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

我想改變imgsubcatagories圖像控制路徑,當我在列表框中單擊項。 幫我

+0

任何人都可以知道這個解決方案嗎? – MansinhDodiya

回答

0

好的,這並不容易。

如果可以讓您的圖像對象,即可以很容易地這樣做:

imgsubcatagorie.Source = ModifyImageSource(new Uri("yourUri", UriKind.RelativeOrAbsolute)); 

private ImageSource ModifyImageSource(Uri uri) 
     { 
       image = new BitmapImage(uri); 
       return image;   
     } 

但是,你不能只是拿這個對象。主要問題是如何得到它。

你應該以某種方式從TransactionList中取出它。 (還有,你有一個很重的建設:listbox => stackpanel => stackpanel =>圖像)

我的第一個想法是:使用循環遍歷TransactionList中的所有項目,並嘗試在那裏找到圖像。


可能的解決方案

我不是很好expirienced與ListBox.ItemTemplate功能,我沒有你的整個代碼,但無論...

直接的方法:嘗試使用循環來查找項目。

foreach (var x in TransactionList.Items) 
      { 
       if (x is Image) 
       { 
        image = (Image)x; 
        break; 
       } 
      } 

然後在事件處理程序中使用此圖像對象。

而且

Find element of concrete type.

也檢查了這個問題:

Find control inside Listbox.ItemTemplate

不爲WP7,但可能工作。

+0

:我的圖像是在列表框中,所以imagename.source是不可能的單擊事件列表框 – MansinhDodiya

+0

:感謝您的幫助,我很困惑那 – MansinhDodiya

+0

:你是對的,但我怎麼能得到imagename它不可能在transectionlist點擊event.i想改變切割列表單擊事件的圖像路徑... actully我有另一條路徑,但我無法得到imageName – MansinhDodiya