如何将数据绑定到字典<;字符串,列表<;字符串>&燃气轮机;到C#-WPF中的列表框?
C#代码-如何将数据绑定到字典<;字符串,列表<;字符串>&燃气轮机;到C#-WPF中的列表框?,c#,wpf,visual-studio,xaml,data-binding,C#,Wpf,Visual Studio,Xaml,Data Binding,C#代码- 命名空间WPFDataBinding { 公共部分类主窗口:窗口 { 公众人物对象{get;set;} 公共主窗口() { 初始化组件(); Obj=新人(); 列表主题1=新列表(); subjects1.Add(“C”);subjects1.Add(“C++”);subjects1.Add(“C#”); List subjects2=新列表(); subjects2.Add(“JAVA”);subjects2.Add(“JS”);subjects2.Add(“CSS”); 添加(
命名空间WPFDataBinding
{
公共部分类主窗口:窗口
{
公众人物对象{get;set;}
公共主窗口()
{
初始化组件();
Obj=新人();
列表主题1=新列表();
subjects1.Add(“C”);subjects1.Add(“C++”);subjects1.Add(“C#”);
List subjects2=新列表();
subjects2.Add(“JAVA”);subjects2.Add(“JS”);subjects2.Add(“CSS”);
添加(“Kush”,主题1);
对象studDetail.Add(“Yash”,主题2);
DataContext=this;
}
公共阶层人士
{
私有字典StudDetail=新字典();
公共词典详细信息
{
获取{return StudDetail;}
设置{StudDetail=value;}
}
}
}
}
WPF代码------
我写了这段代码,但结果不是我所期望的。有人知道在这种情况下该怎么做吗?如果是,请使用Plz帮助解决。您可以使用
IValueConverter
将数据更改为可用形式
如果只希望字符串列表中的所有字符串聚集在一个列表中,则可以使用此转换器:
namespace WPFDataBinding
{
public partial class MainWindow : Window
{
public Person Obj { get; set; }
public MainWindow()
{
InitializeComponent();
Obj = new Person();
List<string> subjects1 = new List<string>();
subjects1.Add("C"); subjects1.Add("C++"); subjects1.Add("C#");
List<string> subjects2 = new List<string>();
subjects2.Add("JAVA"); subjects2.Add("JS"); subjects2.Add("CSS");
Obj.studDetail.Add("Kush", subjects1);
Obj.studDetail.Add("Yash", subjects2);
DataContext = this;
}
public class Person
{
private Dictionary<string, List<string>> StudDetail = new Dictionary<string, List<string>>();
public Dictionary<string, List<string>> studDetail
{
get { return StudDetail; }
set { StudDetail = value; }
}
}
}
}
WPF code------
<ListBox FontSize="20" Height="Auto" Width="Auto" MinHeight="100" MinWidth="100" Background="Gray">
<Label Content="{Binding Obj}">
<Label.ContentTemplate>
<DataTemplate>
<ListBox Height="Auto" FontSize="20" MinHeight="100"
MinWidth="100" Width="Auto" Name="Sub1"
ItemsSource="{Binding studDetail}"/>
</DataTemplate>
</Label.ContentTemplate>
</Label>
</ListBox>
如果您想要一些不同的内容,请更新您的问题。您希望它在列表框中显示什么?字典中的键,所有列表中的所有字符串组合到一个列表中,或者其他什么?@BradleyUffner我想在一个列表框中显示1个列表,该列表框有一个键“Kush”。@kushagrabisht:你想如何显示主题?在一个列表框中,一个列表在另一个列表下@mm8没关系,我已经计算出来了。谢谢你的帮助。我很感激。
public class StudentDetailsConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var data = value as Dictionary<string, List<string>>;
return data.Values.SelectMany(v => v);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
<Window.Resources>
<local:StudentDetailsConverter x:Key="StudentDetailsConverter" />
</Window.Resources>
ItemsSource="{Binding Path=studDetail, Converter={staticResource StudentDetailsConverter}}"