簡體   English   中英

用字典填充 C# 中的 WPF DataGrid<string,myclass></string,myclass>

[英]Filling WPF DataGrid in C# with a Dictionary <String,MyClass>

我想用我的字典中的數據填充數據網格。 綁定列Binding="{Binding Key}有效,但嘗試綁定 MyClass 的值( Binding="{Binding Value.myString} )我只得到在“對象”上找不到的屬性。 我應該改變什么? 提前致謝。

我可以給你一個樣品。

請看以下代碼:

xaml:
Binding="{Binding MyclassDic[N_100].Id}"

cs:
xxx.Binding=new Binding(@"MyclassDic[N_100].Id");

主窗口.xaml:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="197" Width="514.5"
        Loaded="Window_Loaded">
    <Grid RenderTransformOrigin="0.5,0.5" Margin="0,0,-1,3">
        <Grid.RenderTransform>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform Angle="0.338"/>
                <TranslateTransform/>
            </TransformGroup>
        </Grid.RenderTransform>
        <DataGrid Name="DataGrid" AutoGenerateColumns="False" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="Id" Width="150" Binding="{Binding MyclassDic[N_100].Id}" />
                <DataGridTextColumn Header="Name" Width="150" Binding="{Binding MyclassDic[N_100].Name}" />
                <DataGridTextColumn Header="Age" Width="150" Binding="{Binding MyclassDic[N_100].Age}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

MainWindow.xaml.cs:

using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;

namespace WpfApp1 {
    public partial class MainWindow : Window {
        public MainWindow () {
            InitializeComponent();
            }

        private void Window_Loaded (object sender, RoutedEventArgs e) {
            List<Project> projects = new List<Project>();
            Project project = new Project();
            project.MyclassDic.Add("N_100", new Myclass(1, "Tim", 30));
            projects.Add(project);
            DataGrid.ItemsSource = projects;              
            }
        }
    }

Myclass.cs:

using System;
namespace WpfApp1 {
    public class Myclass
        {
        public int Id {
            get; set;
            }
        public String Name {
            get; set;
            }
        public int Age {
            get; set;
            }

        public Myclass (int Id,String Name, int Age) {
            this.Name = Name;
            this.Id = Id;
            this.Age = Age;
            }
        }
    }

項目.cs:

using System;
using System.Collections.Generic;

namespace WpfApp1 {
    public class Project {
        public Dictionary<String, Myclass> MyclassDic {
            get; set;
            }
        public Project () {
            MyclassDic = new Dictionary<String, Myclass>();
            }
        }
    }

輸出:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM