我有一个数据网格和一个可观察的集合,其中包含来自API的数据。
我在datagrid中创建了一个超链接列,我想用我的observable集合中的数据填充这个特定的列。我怎么能这样做?
答案 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的长度。