我是这样的DataGrid:
<DataGrid x:Name="TotalMatch" ItemsSource="{Binding MatchStat}">
<DataGrid.Columns>
<DataGridTextColumn Header="In corso" Binding="{Binding Path = PlayingMatch}"/>
</DataGrid.Columns>
</DataGrid>
我要做的是创建一个项目计数,结果应该是:
| In corso |
5
我将Binding设置为PlayingMatch,为此我在ViewModel类中定义了这个:
public Models.MatchStat MatchStat = new Models.MatchStat();
所以在模型I中这个定义:
public class MatchStat : ViewModel
{
private static int _playingMatch = 0;
public int PlayingMatch
{
get { return _playingMatch; }
set { SetField(ref _playingMatch, value); }
}
}
当我添加新值作为计数时,我这样做了:
var vm = new ViewModel();
vm.MatchStat.PlayingMatch += 1;
但是&#34;在corso&#34;下没有显示行。细胞,为什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
必须为DataGrid.Itemssource分配IEnumerable(集合,数组或列表)对象。 使用实现IEnumerable的ObservableCollection,如果代码隐藏发生变化(在集合中添加或删除项目),也会更新Window。
您在ViewModel类中的声明应该是:
public ObservableCollection<Models.MatchStat> MatchStats = new ObservableCollection<Models.MatchStat>();
现在,您需要创建一个MatchStat对象并将其添加到之前初始化的集合中。
Models.MatchStat matchStat1 = new Models.MatchStat();
matchStat1.PlayingMatch += 1;
MatchStats.Add(matchStat1);