C# 在我的INotifyPropertyChanged类中运行异步函数,但代码未运行
我正在尝试使listview中的每个listcell根据它们以前单击的内容而有所不同,并且我正在使用INotifyPropertyChanged进行此操作 我的类中有一个if/else代码,但它没有运行。。我没有颜色。 例如,如果我给我们一个颜色=color.Green;在我的公共电流中,它就起作用了。但当我执行这个if/else语句时,它不会运行 这是我的班级:C# 在我的INotifyPropertyChanged类中运行异步函数,但代码未运行,c#,forms,xamarin,C#,Forms,Xamarin,我正在尝试使listview中的每个listcell根据它们以前单击的内容而有所不同,并且我正在使用INotifyPropertyChanged进行此操作 我的类中有一个if/else代码,但它没有运行。。我没有颜色。 例如,如果我给我们一个颜色=color.Green;在我的公共电流中,它就起作用了。但当我执行这个if/else语句时,它不会运行 这是我的班级: public class Current : INotifyPropertyChanged { Color color;
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>
很可能它被封锁了 从构造函数调用
async
运行此
函数时没有使用wait
,当然在构造函数中不能使用
同时尝试将运行此
函数更改为以下内容:-
public async Task RunThis()
{
..
}
然后使用
wait
,而不是通过构造函数,找到调用此函数的适当位置。确保调用者也指定了async
。如果我不通过构造函数调用它,我如何调用它?也许这样就行了?protected override async void OnAppearing(){//并将代码放在此处?}@William.Johnprotected async override void OnAppearing()
可在内容页上找到。是。我在我的XAML中使用这个类,所以我没有在代码中使用它。我是否应该在appearing()wait Task.Delay(1000)上执行受保护的异步重写void;这将使它加载?@William.John使用任务。延迟不太可能解决您的问题。请在xaml代码下检查我更新的代码。即使我在控制台中收到“Test”消息,仍然无法工作。不知怎么被堵住了吗?
public async Task RunThis()
{
..
}