我有个案,
public class dictLanguage
{
public string EnglishText { get; set; }
public string FinnishText { get; set; }
}
IEnumerable<dictLanguage> result1 = from ....select new dictLanguage{ EnglishText=... };
IEnumerable<dictLanguage> result2 = from ....select new dictLanguage{ FinnishText=... };
LstBox.DataContext = result1
在Xaml,我有
<listbox ItemsSource="{Binding}">
...
<TextBlock Text="{Binding EnglishText}">
<TextBlock Text="{Binding FinnishText}">
...
</listbox>
我正在将一个xml文件中的英文文本读入“result1”,将另一个xml文件中的芬兰文本读入“result2”,但我只能将一个ItemSource设置为ListBox。我努力了,但找不到任何解决方案。我想显示两个不同的XML文件中的“dictLanguage”值。
寻找任何解决方案,
有人能告诉我解决方案吗? - 谢谢!
答案 0 :(得分:1)
您可以将两个列表合并在一起以创建一个项目来源:
IEnumerable<dictLanguage> result1;
IEnumerable<dictLanguage> result2;
//populate collections....
IEnumerable<dictLanguage> allResults = result1.Union(result2);
答案 1 :(得分:0)
您无法将两个ItemsSource绑定到ListBox。正确而简单的方法是将来自2个xml文件的数据组合成一个对象集(包含所有翻译)。你可以写:
from englishText in xml1
from finnishText in xml2
select new DictLanguage() { EnglishText = englishText, FinnishText = finnishText };
请阅读此link,了解有关合并多个来源的更多信息。