我有一個C#Windows Phone 8 MVVM應用程序與Fody PropertyChanged軟件包安裝。我已經添加了ImplementPropertyChanged指令中的類聲明之前:儘管在Windows Phone 8應用程序中使用了Fody PropertyChanged包,但數據綁定視圖元素仍未更新?
[CompilerGenerated]
[GeneratedCode("Radarc", "4.0")]
[ImplementPropertyChanged]
public partial class MilitaryRobots_VideosViewModel : ViewModelsBase.VMBase, IViewModels.IMilitaryRobots_VideosViewModel, INotifyPropertyChanged
我在班上以下兩個屬性,我結合景觀元素:
private Visibility _showDetailsVideo = Visibility.Collapsed;
public Visibility ShowDetailsVideo
{
get
{
return this._showDetailsVideo;
}
set
{
this._showDetailsVideo = value;
this.ShowMainScreen = value == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
}
}
private Visibility _showMainScreen = Visibility.Visible;
/// <summary>
/// Never set this property, instead set ShowDetailsVideo instead.
/// </summary>
public Visibility ShowMainScreen
{
get
{
return this._showMainScreen;
}
private set
{
this._showMainScreen = value;
}
}
一個查看元素的Visibility屬性必然與View Model的ShowDetailsVideo屬性有關。另一個查看元素的可見性屬性綁定到查看模型的ShowMainScreen屬性。在運行時,訪問屬性獲取者,指示綁定的View元素對正在訪問屬性至少一次。此外,這兩個視圖元素確實具有適當的可見性狀態。但是,如果我改變ShowDetailsVideo酒店在運行時,制定者被訪問,但不的干將,表明性質和視圖元素屬性之間的佈線不工作,儘管我使用Fody PropetyChanged的包。財產訪問行爲與Fody包甚至不在那裏相同。
我該如何解決這個問題並使其工作,以便在運行時正確更新Visibility屬性的視圖元素對?我認爲Fody PropertyChanged軟件包應該使實施屬性更改通知變得不必要。
我總是使用'Visibility'打交道時的轉換器下降BindableBase類,你有沒有嘗試過? – Tico
@Tico你綁定到一個布爾屬性?這通常是有人使用具有可見性屬性的轉換器。如果你看看我的代碼,我綁定到已經是可見類型的屬性,所以不需要轉換器。 –
是的,羅伯特,我的第一個轉換器是經典的布爾示例。但是你可以使用Converter實現你想要的。在一種情況下,我使用其中一個來根據輸入的字符數量來設置文本框的寬度。我說的是,試試看。 – Tico