2011-12-21 44 views
1

問題:如何在運行時從選定的ListBox項目將圖像源設置爲空白圖像控件?

我有一個名爲 「此搜索」 空白圖像控制。

現在,我想在運行的基礎上選擇的項目在我的列表框(ListBoxSource)提供一個源到該圖像。

我將如何做,在「ListBoxSource_SelectionChanged(......)」事件?

private void ListBoxSource_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) 
    { 
    //...Some conditional statement in here which determines what image to set or update its Image source 

     this.Image1.Source = ??? What to supply in here 

    } 

注:我知道如何使用綁定要做到這一點,但我知道只有用另一個列表框顯示我選擇的項目。這一次,我使用網格(2行和2列:每個小區中有一個空白圖片控制),用於供給與ListBoxSource選定的圖像項目每個網格單元的目的。

OR我可以使用一些結合這一點使用網格?我的另一個目的是能夠控制不同大小的圖像(意味着某些圖像將跨越網格中的行/列)。

這是我的XAML:

<Window.Resources> 
    <DataTemplate x:Key="ItemTemplate"> 
     <StackPanel> 
      <Image Source="{Binding FileFullName}" HorizontalAlignment="Left" Height="64" Width="64"/> 
      <TextBlock Text="{Binding FileName}"/> 
     </StackPanel> 
    </DataTemplate> 
</Window.Resources> 

<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource SampleDataSource}}"> 
    <ListBox x:Name="ListBoxSource" HorizontalAlignment="Left" ItemTemplate="{DynamicResource ItemTemplate}" ItemsSource="{Binding Collection}" Margin="29,31,0,31" Width="257" SelectionMode="Multiple" SelectionChanged="listBoxSource_SelectionChanged"/> 
    <Grid x:Name="GridImageHolder" Height="270" Margin="338,44,0,0" VerticalAlignment="Top" Background="#FFE0D6D6" ShowGridLines="True" DataContext="{Binding SelectedItem, ElementName=listBoxSource}" d:DataContext="{Binding Collection[0]}" HorizontalAlignment="Left" Width="539"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="130"/> 
      <RowDefinition Height="140"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="267.883"/> 
      <ColumnDefinition Width="271.117"/> 
     </Grid.ColumnDefinitions> 
     <Image x:Name="Image1" Grid.Row="0" Grid.Column="0" Margin="8,0.96,21.883,8"/> 
     <Image x:Name="Image2" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Left" Margin="19.975,0,0,8" Width="218"/> 
     <Image x:Name="Image3" Grid.Row="1" Grid.Column="0" Margin="8,21.04,40.883,16"/> 
     <Image x:Name="Image4" Grid.Row="1" Grid.Column="1" Margin="8,21.04,33.117,16" /> 

    </Grid> 

</Grid> 
+0

你可以看看打字e。並點擊CTRL +空格鍵並查看當您處於設計模式時您可以獲得哪些屬性,您希望該ImageControl的圖像的SelectedIndex名稱或圖像 – MethodMan 2011-12-21 19:01:51

+0

什麼意思?你在談論智能感知嗎?對不起,我只知道如何做一些綁定..但對於編碼,我有點不擅長它..做一些綁定,..創建XAML,.etc Visual Studio爲我做.. – Raf 2011-12-21 19:14:19

+0

你仍然會必須使用一些代碼背後的代碼..你有沒有在Google ..中搜索過XAML事件? – MethodMan 2011-12-21 19:15:19

回答

0

在您需要發送者轉換爲適當的類的事件。

+0

謝謝你..但是我還是想,如果這是可以做到的約束力和DataTemplate的使用網格..我只是想嘗試的東西。我在不同的做我的個人圖像顯示的一些自定義大小,而不是使用模板,以相同的尺寸顯示,layout..etc ..但當然從那裏數據被未來是有界的collection..I ListBox的項目只是想在選擇項目期間以不同的方式顯示它......但是這可能會綁定並實現我想要使用Grid的相同的事情? – Raf 2011-12-21 22:42:56

+0

您可以綁定到XAML中的(UI)元素,並在XAML路徑中引用SelectedItem.Property。在綁定元素上搜索MSDN – Paparazzi 2011-12-21 22:45:35

相關問題