gpt4 book ai didi

c# - 如何将 List 转换为 List WPF

转载 作者:行者123 更新时间:2023-11-30 13:36:19 28 4
gpt4 key购买 nike

假设我有一个列表框

<ListBox ItemsSource="{Binding MyList}"/>

我有一个属性(property):

private List<dynamic> _myList;

public List<dynamic> MyList
{
get { return _myList; }
set
{
if(value==null)return;
_myList = value;
OnPropertyChanged();
}
}

好的,现在我们来回答我的问题:我有几个类,我将有列表,我希望能够在此列表框中显示它们。

类:

public class A
{
public string S { get; set; }
public int I { get; set; }
}

public class B
{
public int C { get; set; }
public string Name { get; set; }
public string F { get; set; }
}

public class C
{
public int I { get; set; }
public string Name { get; set; }
public string This { get; set; }
public double That { get; set; }
}

填写我的列表

    private void FillA()
{
List<A> listA = GetListAFromSomewhere();

MyList = listA;
}
private void FillB()
{
List<B> listb = GetListBFromSomewhere();

MyList = listb;
}

private void FillC()
{
List<C> listC = GetListCFromSomewhere();

MyList = listC;
}

我得到异常

Cannot implicitly convert type 'System.Collections.Generic.List' to 'System.Collections.Generic.List'

我试过转换,并寻找转换器。但似乎无法弄清楚。当我更改为 List<object> 时,它的作用相同. this

感谢您的帮助!

最佳答案

我认为您的问题是由协方差/协方差引起的。类不支持此功能。您可以使用接口(interface)或 Cast linq 方法。在这里查看更多信息:https://msdn.microsoft.com/en-us/library/ee207183.aspx我的意思是这样的:

MyList = GetListAFromSomewhere().Cast<dynamic>().ToList();

也不确定您的 ListBox 是否可以与动态一起正常工作。您可以在 XAML 中使用继承和 TemplateSelector:http://www.codeproject.com/Articles/418250/WPF-Based-Dynamic-DataTemplateSelector

关于c# - 如何将 List<T> 转换为 List<dynamic> WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35537899/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com