填写Datagrid中的特定列

时间:2016-08-08 19:43:21

标签: c# wpf api datagrid

我有一个数据网格和一个可观察的集合,其中包含来自API的数据。

我在datagrid中创建了一个超链接列,我想用我的observable集合中的数据填充这个特定的列。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

DataGrid是基于行的。您需要迭代ItemsSource集合并设置与列对应的特定属性。当然,该列应该绑定到所述属性。

答案 1 :(得分:0)

好的,从我的ObservableCollection中选择数据,LINQ请求似乎是最好的方法。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution
{

    // returns true or false based on whether s1 and s2 are 
    // an unordered anagrammatic pair
    // e.g. "aac","cac" --> false
    //      "aac","aca" --> true  
    // Complexity: O(n)
    static bool IsAnagrammaticPair(string s1, string s2)
    {
        if(s1.Length != s2.Length)
            return false;
        int[] counter1 = new int[26],
              counter2 = new int[26];
        for(int i = 0; i < s1.Length; ++i)
        {
            counter1[(int)s1[i] - (int)'a'] += 1;
            counter2[(int)s2[i] - (int)'a'] += 1;
        }
        for(int i = 0; i < 26; ++i)
            if(counter1[i] != counter2[i])
                return false;
        return true;
    }

    // gets all substrings of s (not including the empty string, 
    // including s itself)
    // Complexity: O(n^2)
    static IEnumerable<string> GetSubstrings(string s)
    {
        return  from i in Enumerable.Range(0, s.Length)
                from j in Enumerable.Range(0, s.Length - i + 1)
                where j >= 1
                select s.Substring(i, j);
    }

    // gets the number of anagrammatical pairs of substrings in s
    // Complexity: O(n^2)
    static int NumAnagrammaticalPairs(string s)
    {
        var substrings = GetSubstrings(s).ToList();
        var indices = Enumerable.Range(0, substrings.Count);
        return (from i in indices
                from j in indices
                where i < j && IsAnagrammaticPair(substrings[i], substrings[j])
                select 1).Count();
    }

    static void Main(String[] args)
    {
        int T = Int32.Parse(Console.ReadLine());
        for(int t = 0; t < T; ++t)
        {
            string line = Console.ReadLine();
            Console.WriteLine(NumAnagrammaticalPairs(line));
        }
    }
}

然后我尝试将结果放入数据网格中:

GetSubstrings

问题是,它不是在datagrid的行中显示URL,而是显示标题为“Length”的列以及每行中url的长度。