Windows Phone的图片绑定(Windows Phone Image Binding)

2019-08-16 22:41发布

我希望把图像在我的列表框使用绑定。

下面是包含URI的对象:

_roomView.Room = new Room
        {
            Items = new List<Item> {
            new Item {ItemType = ItemType.BlueKey, ImageUri = "/Escape;component/Images/Items/a.jpg"},
            new Item {ItemType = ItemType.Bracelet, ImageUri = "/Escape;component/Images/Items/b.png"},
            new Item {ItemType = ItemType.Money, ImageUri = "/Escape;component/Images/Items/b.png"}}
        };
        DataContext = _roomView;

下面是XML:

  <ListBox x:Name="Mylist">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="5">
                        <Image Source="{Binding Room.Items.ImageUri}" Stretch="None" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

图像没有显示。

任何人都可以看到,我错了?

Answer 1:

如果图像不显示 - 检查pathes; 例如我的绑定代码

 public class Country
{       
    public String name
    {
        get;
        set;
    }       
    public String Flag
    {
        get
        {
            return "/Image/Countries/" + name + ".png";
        }
    }
}


<Image Width="100" Height="140" HorizontalAlignment="Left" Stretch="UniformToFill">
    <Image.Source>
       <BitmapImage UriSource="{Binding Flag}" CreateOptions="BackgroundCreation" />
    </Image.Source>
</Image>   

如果您正在使用从该项目的图像确保大公建设内容和总拷贝到输出目录。(图像的属性)

顺便说一句,如果你想显示从互联网上你需要使用LowProfileImageLoader你可以阅读更多关于它的图像http://blogs.msdn.com/b/delay/archive/2010/09/02/keep-a-low -profile-lowprofileimageloader -帮助-的-窗口电话7的UI线程住宿响应,通过加载图像-在最background.aspx

 <Image  delay:LowProfileImageLoader.UriSource= "{Binding Flag}" HorizontalAlignment="Left" Stretch="Fill"   VerticalAlignment="Center" Width="24" Height="16" Margin="0,0,10,0"  />


Answer 2:

而不是做

DataContext = _roomView;

我所做的:

Mylist.ItemsSource = _roomView.Room.Items;

而在XML:

<Image Source="{Binding ImageUri}" Stretch="None" />

上面显示“ImageUri”,而不是Room.Items.ImageUri,因为我已经传入Rooom.Items。



文章来源: Windows Phone Image Binding