如何将数据绑定到字典<;字符串,列表<;字符串>&燃气轮机;到C#-WPF中的列表框?

如何将数据绑定到字典<;字符串,列表<;字符串>&燃气轮机;到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”); 添加(

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”);
添加(“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}}"