大佬教程收集整理的这篇文章主要介绍了将 List<T> 放入 ListView,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个模型:
public class BandModel
{
public String Bandname { get; set; }
public Countrymodel Country { get; set; }
public GenreModel Genre{ get; set; }
public datetiR_483_11845@e DateOfBirth { get; set; }
}
并且有一个类会返回这些类的列表
public class FullBandProcessor
{
public static async Task<List<BandModel>> LoadFullBandinformation()
{
String url = "http://localhost:11727/API/Bands";
using (httpResponsemessage response = await APIHelper.apiclient.GetAsync(url))
{
if (response.IssuccessstatusCodE)
{
List<BandModel> result = await response.Content.ReadAsAsync<List<BandModel>>();
return result;
}
else
{
throw new Exception(response.ReasonPhrasE);
}
}
}
}
我需要在 WPF 中显示这些对象的列表,但我不知道该怎么做 - 在 WPF 中它完全是绿色的。
这里我尝试使用ObservableCollection
,在其中实现 get
,以便它调用LoadFullBandinformation
,以便稍后它可以在xaml中绑定到此属性,但有些东西不适用于我。
private ObservableCollection<BandModel> _BandModels;
public ObservableCollection<BandModel> bandModels
{
get
{
return _BandModels = FullBandProcessor.LoadFullBandinformation();
}
private set
{
}
}
您需要使用数据绑定和项目模板来实现这一点。另外,您实际上需要在某个地方等待对 FullBandProcessor.LoadFullBandInformation();
的呼叫。这是更改为工作的 C# 代码:
public class YourClass
{
public ObservableCollection<BandModel> BandModels { get; private set; } = new ObservableCollection<BandModel>() // initialise it as empty
// Constructor
public YourClass()
{
SetBandModels();
}
private async Task SetBandModels()
{
// Add a try/ catch block
var bands = await FullBandProcessor.LoadFullBandInformation().ConfigureAwait(false);
BandModels = new ObservableCollection<BandModel>(bands);
}
}
然后在您的 XAML 中,您创建一个 <ListView>
,它是项目模板和绑定。像这样:
<ListView Itemssource="{Binding BandModels}">
<ListView.ItemTemplate>
<DataTemplate>
<Label Content={"Binding BandNamE}" /> // Add more controls with more bindings
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
,
LoadFullBandInformation
返回 List<BandModel>
,而 _BandModels
是 ObservableCollection
。
你应该替换:
get
{
return _BandModels = FullBandProcessor.LoadFullBandInformation();
}
与
get
{
return _BandModels = new ObservableCollection<BandModel> (FullBandProcessor.LoadFullBandInformation());
}
以上是大佬教程为你收集整理的将 List<T> 放入 ListView全部内容,希望文章能够帮你解决将 List<T> 放入 ListView所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。