Datagrid只返回空行

时间:2014-03-19 13:55:42

标签: c# wpf datagrid

我的C#应用​​程序中有一个数据网格。加载应用程序时,我看到datagrid没有正确的行,因为没有加载数据。然后,用户可以单击按钮来加载某些数据。这些数据应该反映在数据网格中,但事实并非如此。所有这一切都是12个空行是可见的。 12个空行等于我期望看到的记录数。

当我单步执行代码时,我可以看到我的底层对象(PayOffWin)确实包含所有字段中的数据和列表中的12个项目。出于某种原因,这些数据没有反映在我的数据网格中,但我看不出我做错了什么。

XAML

<DataGrid Name="dgPayoffWin" Grid.Row="1" Grid.Column="0"
                        Margin="20"
                        ItemsSource="{Binding Path=PayOffWin}"
                        Style="{StaticResource dgBase}"
                        CanUserAddRows="False"
                        CanUserDeleteRows="False"                          
                        AutoGenerateColumns="false">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="Range" Binding="{Binding Path=Group}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Frequency" Binding="{Binding Path=WinNum}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Total Value" Binding="{Binding Path=WinGain}" IsReadOnly="True" Width="*"/>
                    </DataGrid.Columns>
                </DataGrid>

我视图模型中的代码

 List<ResultHolder.PayOffMatrix> _payOffWin;

 public List<ResultHolder.PayOffMatrix> PayOffWin
    {
        get { return _payOffWin; }
        set
        {
            _payOffWin = value;
            OnPropertyChanged("PayOffWin");
        }
    }


public class PayOffMatrix
        {
            public enumOutCome OutCome;
            public string Group;
            public double LimitUp, LimitDown;
            public double WinNum, WinGain, LossNum, LossGain;
            public double WinProb, WinExpect, LossProb, LossExpect;
        }

2 个答案:

答案 0 :(得分:1)

变化:

List<ResultHolder.PayOffMatrix> PayOffWin;

为:

ObservableCollection<ResultHolder.PayOffMatrix> PayOffWin;

它会起作用,列表不会通知视图Automaticaly。

答案 1 :(得分:1)

您可以绑定到PUBLIC PROPERTIES,只需将PayOffMatrix中的字段更改为公共属性