0
我想讓每個listcell在不同的列表視圖中取決於他們之前點擊的內容,並且我正在使用INotifyPropertyChanged執行此操作。在我的INotifyPropertyChanged類中運行異步函數並且代碼不運行
我在我的班級有一個if/else代碼,但它沒有運行..我沒有顏色。 如果我例如我們的顏色= Color.Green;在我的公共電流內,然後它的工作。但是,當我做這個if/else語句它不運行。
這是我的課:
public class Current : INotifyPropertyChanged
{
Color color;
public event PropertyChangedEventHandler PropertyChanged;
public Current()
{
RunThis();
}
async void RunThis()
{
var checkWhatOption = await parseAPI.WhatOption();
if ((checkWhatOption ["results"] as JArray).Count > 0) {
color = Color.Black;
}
else {
color = Color.Red;
}
}
public Color Color
{
set
{
if (color != value)
{
color = value;
if (PropertyChanged != null)
{
PropertyChanged(this,
new PropertyChangedEventArgs("Color"));
}
}
}
get
{
return color;
}
}
}
而在我,我用它在頁面上XAML我有這樣的代碼:
<Label BackgroundColor="{Binding Color}" >
<Label.BindingContext>
<local:Current />
</Label.BindingContext>
更新:
public static async Task RunThis()
{
if ((Stringone ["results"] as JArray).Count > 0) {
Color = Color.Black; //An object reference is required to access non-static member.
}
else {
color = Color.Red; //An object reference is required to access non-static member.
}
}
protected override async void OnAppearing()
{
await Current.RunThis();
}
如何通過構造函數調用它?也許這會做到這一點?保護覆蓋異步無效OnAppearing() \t \t { //並把代碼放在這裏? \t \t} –
找不到合適的替代方法.. –
@ William.John'受保護的異步覆蓋無效OnAppearing()'在「ContentPage」上可用。 – Pete