繁体   English   中英

在 xaml 中使用具有什么类型属性的 Image 标记

[英]Using Image tag in xaml with what type of property

我想在 xaml 中使用带有<Image></Image>标记的<Image></Image> (在列表框内)。

<Image  Source="{Binding ClassImage}"
        Width="64" Height="64"
        HorizontalAlignment="Left" VerticalAlignment="Top"
        Stretch="Fill"
        Margin="0,0,0,10"
        RenderOptions.BitmapScalingMode="Fant"/>

并在 ViewModel 中使用此构造函数。

public ChooseNewClassViewModel()
{
   ListOfModels = new ObservableCollection<Model>();
   foreach (var model in ListOfModels)
   {
       Model.ClassImage = AppDomain.CurrentDomain.BaseDirectory +     @"Common\Assets\Images\Image\" + PlayerClass.Name + ".png";
   }
}

这是模型属性

public string ClassImage
{
     get { return _classImage; }
     set
     {
         _classImage = value;
         OnPropertyChanged(nameof(ClassImage));
     }
}

现在, ClassImage属性只是一个字符串属性(我在某处读到它应该工作)但图像没有显示,但我在ListOfModels视图中使用的其余数据工作正常,我可以看到三个对象(空)在列表中的视图中。 我的 Image 文件夹中的图像属于 Resource 类型,如果更新则为副本。

我的问题是我猜,将 Image.Source 属性绑定到什么类型的“属性”的最佳方式是什么,它是真正使用字符串的最佳方式吗? 使用存储在项目中的图像的最佳方式是什么?

您的 ChooseNewClassViewModel 方法(构造函数?)不执行任何操作,因为它首先创建一个模型列表,然后立即迭代该集合,但该集合是空的,因为它尚未填充。

也许您希望ClassImage属性如下所示:

public string ClassImage
{
    get { return AppDomain.CurrentDomain.BaseDirectory...; }
}

问题是我的 xaml 找不到与我的模型的绑定。 我修复它的快速方法只是我在我的视图模型中创建了一个新的字符串道具,将 xaml 绑定到那个,并用它来显示图像。

 public string ClassImage
        {
            get { return _classImage; }
            set
            {
                _classImage = value;
                OnPropertyChanged(nameof(ClassImage));

            }
        }

 foreach (var PlayerClass in ListOfPlayerClasses)
            {

                ClassImage = @"/path/folders/" + PlayerClass.Name + ".png";
                PlayerClass.ClassImage = ClassImage;
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM