【问题标题】:Adding string value to DataGrid in C#?在 C# 中向 DataGrid 添加字符串值?
【发布时间】:2014-02-04 10:12:52
【问题描述】:

我有一个方法可以从某个文件中获取 xml 内容,对其进行解析,然后将一些子字符串放入变量 result 和 resultm 中。 我想在 foreach 循环期间写入 result 和 resultm 中的每个值。 遍历所有值并获取子字符串的代码如下所示:

var tipList = registers.Select(x => x.Attribute("type").Value);
var mapToList = registers.Select(x => x.Attribute("mapTo").Value);

foreach (var reg in registers)
{
  foreach (var tpl in tipList)
  {
    var end = tpl.IndexOf(',');
    var start = tpl.LastIndexOf('.', (end == -1 ? tpl.Length - 1 : end)) + 1;
    var result = tpl.Substring(start, (end == -1 ? tpl.Length : end) - start);
  }

  foreach (var mpl in mapToList)
  {
    var endm = mpl.IndexOf(',');
    var startm = mpl.LastIndexOf('.', (endm == -1 ? mpl.Length - 1 : endm)) + 1;
    var resultm = mpl.Substring(startm, (endm == -1 ? mpl.Length : endm) - startm);
  }
}

谁能帮助我了解如何在 C# 中的某些 DataGrid 中添加 result 和 resultm 字符串的值?

【问题讨论】:

  • 您希望如何并排或在某列中查看输出
  • 我认为并排会更酷,但同一列也会很好。
  • 看看我的回答
  • 抱歉不是 datacontext 而是 itemsSource

标签: c# wpf list datagrid


【解决方案1】:

这里是如何实现的

/// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        ObservableCollection<Tuple<string,string>>  _observableCollection = new ObservableCollection<Tuple<string, string>>();
        public MainWindow()
        {
            InitializeComponent();
        }
        private void MyMethod()
        {
            var tipList = registers.Select(x => x.Attribute("type").Value);
            var mapToList = registers.Select(x => x.Attribute("mapTo").Value);
            List<string> listresult =  new List<string>();
            List<string> listresultm = new List<string>();


            foreach (var reg in registers)
            {
                foreach (var tpl in tipList)
                {
                    var end = tpl.IndexOf(',');
                    var start = tpl.LastIndexOf('.', (end == -1 ? tpl.Length - 1 : end)) + 1;
                    var result = tpl.Substring(start, (end == -1 ? tpl.Length : end) - start);
                    listresult.Add(result);
                }

                foreach (var mpl in mapToList)
                {
                    var endm = mpl.IndexOf(',');
                    var startm = mpl.LastIndexOf('.', (endm == -1 ? mpl.Length - 1 : endm)) + 1;
                    var resultm = mpl.Substring(startm, (endm == -1 ? mpl.Length : endm) - startm);
                    listresultm.Add(resultm);
                }
                int maxLenList = Math.Max(listresult.Count, listresultm.Count);
                for (int i = 0; i <maxLenList; i++)
                {
                    if (i < listresult.Count && i<listresultm.Count)
                    {
                        _observableCollection.Add(new Tuple<string, string>(listresult[i],listresultm[i]));
                    }
                    else if(i>=listresult.Count)
                    {
                        _observableCollection.Add(new Tuple<string, string>(string.Empty, listresultm[i]));
                    }
                     else if(i>=listresultm.Count)
                    {
                        _observableCollection.Add(new Tuple<string, string>( listresult[i],string.Empty));
                    }
                }
            }
            dataGrid1.ItemsSource= _observableCollection;  
        }

【讨论】:

  • 一个问题,在:public partial class MainWindow : Window Window 来自命名空间 System.Windows.Window,对吧?
  • 对,你不应该复制所有代码,只复制第一个 { 和最后一个 } 之间的代码
  • 我的 xaml 窗口定义如下: public partial class CreateAreaDialogWindow : System.Windows.Window { ObservableCollection> _obsCollection = new CreateAreaDialogWindow();但是我收到 new CreateAreaDialogWindow(); 的错误错误 1 ​​无法将类型 'SEDMS.VisualStudioPackage.Dialogs.CreateAreaDialogWindow' 隐式转换为 'System.Collections.ObjectModel.ObservableCollection>' 您的代码是否适用于 Area?
  • 它仍然有同样的错误。错误 1 ​​无法将类型 'SEDMS.VisualStudioPackage.Dialogs.CreateAreaDialogWindow.MainWindow' 隐式转换为 'System.Collections.ObjectModel.ObservableCollection>' C:\Users\nemanja.mosorinski\Downloads__Research-master__Research- master\SEDMSVSPackage\VisualStudioPackage\Dialogs\CreateAreaDialogWindow.xaml.cs 31 74 VisualStudioPackage
  • 该死的我太笨了...菜鸟的错误:(我现在就试试。对不起,我是初学者:)
猜你喜欢
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 2021-12-26
  • 2023-03-17
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多