问题描述
昨天我得到了一些帮助。我仍然是 C# 的新手,并且使用 Xamarin Forms 和 Prism 作为 MvvM 框架。
我从 API 中提取数据并希望将其显示在 ListView 中,该 API 可以正常工作并正确返回数据。如果我将数据作为列表返回并绑定列表,我必须手动更新 XAML 中的绑定(在运行应用程序时)才能查看行中的数据。
我认为我可能需要更改为 ObservableCollection,但我运气不佳。
我该如何纠正? 我将尝试使用显示我的问题的 gif 更新 OP。
这是我的模型:
public class OpenWorkOrder
{
public int ID { get; set; }
public string WOID { get; set; }
public string AssetNumber { get; set; }
public string WorkRequested { get; set; }
public Nullable<bool> Active { get; set; }
}
这是视图模型:
private List<OpenWorkOrder> _openWO;
public List<OpenWorkOrder> Openorders
{
get { return _openWO; }
set { SetProperty(ref _openWO,value); }
}
private string selectedWO;
public string SelectedWO { get => selectedWO; set => SetProperty(ref selectedWO,value); }
private string wOID;
public string WOID { get => wOID; set => SetProperty(ref wOID,value); }
private string iD;
public string ID { get => iD; set => SetProperty(ref iD,value); }
private string workRequested;
public string WorkRequested { get => workRequested; set => SetProperty(ref workRequested,value); }
public async Task<List<OpenWorkOrder>> OpenWO()
{
var client = new RestClient("apiurl/");
var request = new RestRequest("Maint/GetopenWorkOrders",Method.GET);
IRestResponse<List<OpenWorkOrder>> response = await client.ExecuteAsync<List<OpenWorkOrder>>(request);
if (response.StatusCode.ToString() == "OK")
{
return response.Data;
}
else
{
return null;
}
public async void OnNavigatedTo(INavigationParameters parameters)
{
try { Openorders = await OpenWO();
Console.WriteLine("Await Called!");
}
catch (Exception ex)
{
await _dialogService.displayAlertAsync("Exception Handled",ex.ToString(),"OK");
}
}
private List<OpenWorkOrder> _openWO;
public List<OpenWorkOrder> Openorders
{
get { return _openWO; }
set { SetProperty(ref _openWO,value); }
}
public async Task<List<OpenWorkOrder>> OpenWO()
{
var client = new RestClient("apiurl/");
var request = new RestRequest("Maint/GetopenWorkOrders","OK");
}
}
这是 XAML:
<StackLayout Orientation="Horizontal">
<ListView x:Name="Data" ItemsSource="{Binding Openorders}"
GroupdisplayBinding="{Binding WOID}"
SelectionMode="Single">
<ListView.Behaviors>
</ListView.Behaviors>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding WorkRequested}" HorizontalOptions="Center"/>
<Label Text="{Binding WOID}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
编辑:此处附上 gif
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)