WPF中如何把listBox选中的对象绑定在图片的Source上

发布网友 发布时间:2022-04-21 19:37

我来回答

3个回答

热心网友 时间:2022-04-14 21:43

你的意思是在listbox选中不同的图片路径,在image控件预览?
可以绑定,但是要注意你选中的值是string类型的,而图片的source是BitmapImage,所以要定义一个Converter来转换。追问不用数据转换不行吗?

追答那就在你的img类里面加个属性,BitmapImage类型,绑定到此属性。

热心网友 时间:2022-04-14 23:01

对象的定义如下:
class img
{
public String Name { get; set; }
public String URL { get; set; }
public img(String name,String url) {
this.Name = name;
this.URL = url;
}
}
XAML代码:
<Grid>
<Button Content="Clear" ">
<ListBox Name="listBox" />
<Image x:Name="img" Source="Assets/img/Alpaca.jpg" />
<TextBlock x:Name="tb" HorizontalAlignment="Left" Margin="276,280,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding SelectedIndex,ElementName=listBox}"/>

</Grid>
XAML对应的后台代码:
public partial class MainWindow : Window
{
List<img> listImg = new List<img>();
public MainWindow()
{
listImg.Add(new img("Alpaca", @"Assets\img\Alpaca.jpg"));
listImg.Add(new img("Elephas", @"Assets\img\Elephas.jpg"));
listImg.Add(new img("Giraffa", @"Assets\img\Giraffa.jpg"));
listImg.Add(new img("LemurCatta", @"Assets\img\LemurCatta.jpg"));
listImg.Add(new img("panda", @"Assets\img\panda.jpg"));
listImg.Add(new img("pen", @"Assets\img\pen.jpg"));
InitializeComponent();

this.listBox.ItemsSource = listImg;
this.listBox.DisplayMemberPath = "Name";//Source="{Binding ElementName=listBox,Path=SelectItem.URL}"
//this.img.SetBinding(this.listBox.SelectedItem,new Binding()
//tb.Text = listBox.SelectedIndex.ToString();

}
}

热心网友 时间:2022-04-15 00:36

意思listbox选同图片路径image控件预览
绑定要注意选值string类型图片sourceBitmapImage所要定义Converter转换

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com