程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将 List<T> 放入 ListView大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决将 List<T> 放入 ListView?

开发过程中遇到将 List<T> 放入 ListView的问题如何解决?下面主要结合日常开发的经验,给出你关于将 List<T> 放入 ListView的解决方法建议,希望对你解决将 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>,而 _BandModelsObservableCollection

你应该替换:

 get
 {
    return _BandModels = FullBandProcessor.LoadFullBandInformation();
 }

 get
 {
    return _BandModels = new ObservableCollection<BandModel> (FullBandProcessor.LoadFullBandInformation());
 }

大佬总结

以上是大佬教程为你收集整理的将 List<T> 放入 ListView全部内容,希望文章能够帮你解决将 List<T> 放入 ListView所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:放入