C# 是否可以只绑定Datagrid上的列表?
我上过这门课:C# 是否可以只绑定Datagrid上的列表?,c#,wpf,C#,Wpf,我上过这门课: public class Last5Match { public List<Match> HomeTeamMatches { get; set; } = new List<Match>(5); public List<Match> AwayTeamMatches { get; set; } = new List<Match>(5); public string HomeTeamName
public class Last5Match
{
public List<Match> HomeTeamMatches { get; set; } = new List<Match>(5);
public List<Match> AwayTeamMatches { get; set; } = new List<Match>(5);
public string HomeTeamName { get; set; }
public string AwayTeamName { get; set; }
}
我不需要声明这样的列表:
List<Last5Match> _lastFiveMatches = new List<Last5Match>();
在我的Datagrid上,访问列表的属性HomeTeamMatches
和AwayTeamMatches
只需添加如下内容:
<DataGrid
AutoGenerateColumns="False"
ItemsSource="{Binding LastFiveMatches}">
<DataGridTextColumn Header="5" Binding="{Binding HomeTeamName[0].Nameoftheproperty}"/>
这可能吗?”因为实际上,如果我替换为ItemSource
LastFiveMatches.HomeTeamMatches,我不会显示任何值。HomeTeamMatches
我可以工作,但我只能访问HomeTeamMatches的属性您可以创建一个名为TotalMatches的新属性
public class Last5Match
{
public List<Match> HomeTeamMatches { get; set; } = new List<Match>(5);
public List<Match> AwayTeamMatches { get; set; } = new List<Match>(5);
public string HomeTeamName { get; set; }
public string AwayTeamName { get; set; }
public List<Match> TotalMatches
{
get{ return HomeTeamMatches.Union(AwayTeamMatches).ToList(); }
}
}
public类Last5Match
{
公共列表HomeTeamMatches{get;set;}=新列表(5);
公共列表awaytammatches{get;set;}=新列表(5);
公共字符串HomeTeamName{get;set;}
公共字符串AwayTeamName{get;set;}
公共列表总匹配项
{
获取{return HomeTeamMatches.Union(AwayTeamMatches.ToList();}
}
}
然后将网格绑定到TotalMatches我认为可能需要一个接口来实现IEnumerable,或者将网格绑定到列表属性grid1.datasource=last5matches.List1,但这样我怎么知道哪些匹配属于HomeTeamMatches和AwayTamMatches?为iSometeam添加一个匹配属性?@fantozzi,而不是管理两个单独列表您的对象应该有一个布尔值(或枚举)来指定对象的“类型”。这将使things@fantozzi这会使事情复杂化吗?你有一个
Match
,它有一个指示器,指示它是什么类型的Match
,这是很自然的方法。
public class Last5Match
{
public List<Match> HomeTeamMatches { get; set; } = new List<Match>(5);
public List<Match> AwayTeamMatches { get; set; } = new List<Match>(5);
public string HomeTeamName { get; set; }
public string AwayTeamName { get; set; }
public List<Match> TotalMatches
{
get{ return HomeTeamMatches.Union(AwayTeamMatches).ToList(); }
}
}
public class Last5Match
{
public List<Match> HomeTeamMatches { get; set; } = new List<Match>(5);
public List<Match> AwayTeamMatches { get; set; } = new List<Match>(5);
public string HomeTeamName { get; set; }
public string AwayTeamName { get; set; }
public List<Match> TotalMatches
{
get{ return HomeTeamMatches.Union(AwayTeamMatches).ToList(); }
}
}