0

我的代码:

<ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>
                                <Image Height="100" Width="105" Source="{Binding Icon}" VerticalAlignment="Top" OpacityMask="White" Stretch="Fill" />
                                <TextBlock Text="{Binding Name}" Style="{StaticResource PhoneTextSubtleStyle}"
                              Width="110" TextAlignment="Center"/>
                                <Image  Source="{Binding ImageSrc}" Height="20" Width="20"  VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0,-50,15,0" Stretch="Fill"  />

                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>



    interestrates = (from rts in xmlDocu.Descendants("Friend")

                                     select new SampleCheckedData
                                     {

                                         Id = (string)rts.Element("userid"),
                                         Name = (string)rts.Element("name"),
                                         Icon = (string)rts.Element("imageurl"),
                                         VisibleStatus = (string)rts.Element("visiblestatus"),
                                         AppStatus = (string)rts.Element("loginstatus"),

                                     }).ToList<SampleCheckedData>();



                    this.lstImages.ItemsSource = interestrates;

我能够正确绑定名称和图标。但是我需要将 Imagesrc 图像设置为好像 visiblestatus,Appstatus 展位是真实的,然后需要绑定一种类型的图像,否则需要通过代码绑定另一种类型的图像。如何实现这一点?

4

2 回答 2

1

只需使用一个名为 ImageSrc 的属性,如下所示:

public class SampleCheckedData
{

//... your properties

        public Uri ImageSrc
        {
            get
            {
               if ((bool.Parse(this.VisibleStatus) && (bool.Parse(this.AppStatus))
                {
                if (!string.IsNullOrEmpty(this.Icon))
                    return new Uri(this.Icon, UriKind.Absolute); //or whatever image
                }
                else
                {
                    return new Uri("/Images/YourOtherImage.png", UriKind.Relative);
                }

            }
        }
}

它应该工作。至少这是我用来绑定图像的方式......

注意:我假设 Icon 属性具有图像的绝对路径。

于 2012-06-11T14:10:17.983 回答
0

只是为了添加到@josemiguel.torres,image.Source 是 ImageSource 类型,因此您不想返回 Uri,而是希望这样做:

return new BitmapImage(new Uri(this.Icon, UriKind.Absolute));
于 2012-06-13T21:50:37.557 回答