Ich habe ein Problem, wenn ich versuche, die "Enabled" -Eigenschaft meines Android Button an ein Boolean meines ViewModel mit dem MvvmCross-Framework zu binden und ich kenne das wirklich nicht Ursprung davon.Binden der Enabled-Eigenschaft einer Android-Schaltfläche mit dem MvvmCross
So habe ich eine Ansichtsmodell, das die beiden folgenden Eigenschaften enthält:
private ProjectDetailDTO _projectDetail;
public ProjectDetailDTO ProjectDetail
{
get { return this._projectDetail; }
set
{
_projectDetail = value;
RaisePropertyChanged(() => ProjectDetail);
RaisePropertyChanged(() => HasPicture);
}
}
private bool _hasPicture;
public bool HasPicture
{
get { return ((this.ProjectDetail != null) && !String.IsNullOrEmpty(this.ProjectDetail.Pictures)); }
set { _hasPicture = value;
RaisePropertyChanged(() => HasPicture);
}
}
Wie würden Sie verstehen, meine Taste binden an die HasPicture Eigenschaft. So habe ich den folgenden Code für meine Button in meiner .axml Datei:
<Button
local:MvxLang="Text LblSeePicturesValue"
local:MvxBind="Enabled HasPicture,Click ShowProjectPicturesCommand"
android:id="@+id/buttonPictures"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
Ich glaube nicht, es ist ein Ansichtsmodell Problem, weil meine WP-Anwendung auch mit diesem Code funktioniert. Tatsächlich wird mein ProjectDetailDTO durch den Aufruf eines Web-Service, also durch eine asynchrone Methode, gefüllt. Ich denke, das ist der Grund, warum die HasPicture-Eigenschaft den falschen Wert hat, wenn die Bindung realisiert wird. Aber mit meinem ViewModel-Code sollte die HasPicture-Eigenschaft aktualisiert werden, wenn das ProjectDetailDTO gefüllt ist. Gibt es irgendetwas, was ich in meiner Android View falsch gemacht habe?
Danke für jede Hilfe!
Dank Sie wieder für deine Hilfe Stuart, ersetze meine Zeile durch deine "löste mein Problem. –