如何在运行时从选定的列表框项将图像源设置为空白图像控件

本文关键字:图像 设置 控件 空白 列表 运行时 | 更新日期: 2023-09-27 18:18:37

问题:

我有一个名为">Image1"的空白图像控件。

现在,我想在运行时根据我的列表框 (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 选定的图像项。

或者我可以使用网格对此进行一些绑定吗?我的另一个目的也是能够控制不同大小的图像(这意味着某些图像将跨越网格内的行/列(。

这是我的 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>

如何在运行时从选定的列表框项将图像源设置为空白图像控件

如果您需要将发送者强制转换为适当的类。