ここでは、MVVMにバインドされた画像リソースをImageコントロールに完全に実装しています。 XAMLがあるページのコンテキストとしてviewmodelを設定する必要があります。また、 "App2.fb.png"としてアクセスすると奇妙に思えますが、それはfb.pngだけでなければなりません。それは資源が
XAML
<Image
Aspect="AspectFit"
Source="{Binding PropertyImageStatusSource}">
ベースのViewModel
があなたを持っている>ドロイドに記載されているだけで、画像の正確な名前に映像ソースの名前を変更...シンプルな修正であるかもしれませんviewmodelsはビューモデル基本クラスを継承しているので、INotifyPropertyChangedはあなたのアクセサ上で普遍的に実装されています。
public class _ViewModel_Base : INotifyPropertyChanged
{
//figure out what is getting set
public virtual bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
{
if (Object.Equals(storage, value))
return false;
storage = value;
OnPropertyChanged(propertyName);
return true;
}
public event PropertyChangedEventHandler PropertyChanged;
//attach handler with property name args to changing property, overridable in inheriting classes if something else needs to happen on property changed
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
のViewModel
Public MyViewModel : _ViewModel_Base
{
private string ImageStatusSource = "fb.png";
public string PropertyImageStatusSource
{
set { SetProperty(ref ImageStatusSource, value); }
get { return ImageStatusSource; }
}
}
あなたのイメージがfb.pngと呼ばれていると言うが、あなたのコードの中であなたがいますそれを "App2.fb.png"と呼ぶ。あなたはImageSource.FromResourceで "fb.png"を使用する必要があります –