Silverlight在完全初始化之前将对象添加到集合中?

时间:2013-01-09 06:42:50

标签: c# silverlight xaml datagrid

screenshot

第三栏中会出现什么行为?

显示的数据是存储在集合中的对象的随机创建字段。填充集合后,集合将绑定在Main Page构造函数中。我已在调试中多次浏览应用程序,并为每个行/对象重新生成数据。但如果我只是在没有调试的情况下运行,我就会遇到这种情第二个项目中的第三个属性/列重复自身。

相关XAML:

<sdk:DataGrid AutoGenerateColumns="False" Grid.Column="1" Grid.Row="1" Height="400" HorizontalAlignment="Left" Margin="0,26,0,0" Name="dgList" VerticalAlignment="Top">
    <sdk:DataGrid.Columns>
        <sdk:DataGridTextColumn Binding="{Binding Location}" CanUserResize="True" Width="Auto" x:Name="objLocation" />
        <sdk:DataGridTextColumn Binding="{Binding Name}"  CanUserResize="True" Width="Auto" x:Name="objName" />
        <sdk:DataGridTextColumn Binding="{Binding UPC}" CanUserResize="True" Width="Auto" x:Name="objUPC" />
    </sdk:DataGrid.Columns>
</sdk:DataGrid>

Main_Page代码背后:

    public Collection<MyClass> myList;

    public MainPage()
    {
        InitializeComponent();
        myList = new Collection<MyClass>();
        CreateHexGrid(8, 10, 30);
        dgList.ItemsSource = myList;
   }

...

    private void AddObjects(Point[, ,] HexPoint, int columns, int rows, double length)
    {
                    ....
                    string loc = col.ToString() + row.ToString();
                    myList.Add(new MyClass(loc));
    }

各种浏览器的行为一致。

添加信息---

当我使用调试时,我没有得到这种行为。第三列生成一个预期的唯一字符串字符串。

所以,我的问题是......在完成初始化之前,我的MainPage如何将MyClass对象添加到MyList中?

1 个答案:

答案 0 :(得分:0)

与朋友的深夜调试会议显示我的代码不是太慢。他指出第三列确实最终生成了一个新代码,但不是每次都生成。

简短的回答,一个私人的随机类级对象没有结束。通过使Random对象静态,类开始按预期运行。