Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf &引用;操作不支持只读收集“;在windows phone中将控件动态添加到列表框项目集合时发生异常_Wpf_Silverlight_Windows Phone 7.1 - Fatal编程技术网

Wpf &引用;操作不支持只读收集“;在windows phone中将控件动态添加到列表框项目集合时发生异常

Wpf &引用;操作不支持只读收集“;在windows phone中将控件动态添加到列表框项目集合时发生异常,wpf,silverlight,windows-phone-7.1,Wpf,Silverlight,Windows Phone 7.1,我试图在填充listbox时将按钮控件动态添加到listbox项集合。我收到的错误是“操作不支持只读收集”。 下面是我的xaml代码,后面是我的xaml.cs代码 <ListBox x:Name="TripList" Height="465" HorizontalAlignment="Left" VerticalAlignment="Top" Width="456" Background="White" Foreground="Blue">

我试图在填充listbox时将按钮控件动态添加到listbox项集合。我收到的错误是“操作不支持只读收集”。 下面是我的xaml代码,后面是我的xaml.cs代码

        <ListBox x:Name="TripList" Height="465" HorizontalAlignment="Left" VerticalAlignment="Top" Width="456" Background="White" Foreground="Blue">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Border BorderBrush="Black" BorderThickness="0,0,0,4">
                                <StackPanel Orientation="Vertical" Width="456">
                                    <StackPanel Orientation="Vertical">
                                        <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
                                            <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" Width="370" FontSize="24" Text="{Binding PUDetails}"/>
                                            <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Right" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="24" Text="{Binding TripStatus}"/>
                                        </StackPanel>
                                        <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
                                            <StackPanel VerticalAlignment="Top" Orientation="Horizontal" Width="300">
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="Conf: "/>
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="{Binding ConfNumber}"/>
                                            </StackPanel>
                                            <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Right" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="Est Do Tm: "/>
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Right" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="{Binding DOTime}"/>
                                            </StackPanel>
                                        </StackPanel>
                                        <StackPanel VerticalAlignment="Top" Orientation="Vertical">
                                            <StackPanel x:Name="stacktest" Background="Azure" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top">
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="Svc: "/>
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="{Binding TripService}"/>
                                            </StackPanel>
                                            <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="PU: "/>
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="{Binding PURoute}"/>
                                            </StackPanel>
                                            <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="DO: "/>
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="{Binding DORoute}"/>
                                            </StackPanel>
                                            <StackPanel VerticalAlignment="Top" Orientation="Horizontal">
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="Pax: "/>
                                                <TextBlock FontWeight="Bold" Foreground="Black" HorizontalAlignment="Left" TextWrapping="Wrap"  VerticalAlignment="Top" FontSize="18" Text="{Binding PaxDetails}"/>
                                            </StackPanel>
                                        </StackPanel>
                                    </StackPanel>

                                        </StackPanel>
                                 </StackPanel>
                            </Border>

                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>


       Grid grdtest = new Grid();
        foreach (TripsList lst in TripList.Items)
        {

            System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
                {

                    grdtest.RowDefinitions.Add(new RowDefinition() { });
                    grdtest.ColumnDefinitions.Add(new ColumnDefinition() { });
                    Button button = new Button();
                    button.HorizontalAlignment = HorizontalAlignment.Right;
                    button.VerticalAlignment = VerticalAlignment.Top;
                    button.Margin = new Thickness(3);
                    button.Width = 80;
                    button.Height = 25;
                    button.Content = "btn1";
                    Grid.SetRow(button, 0);
                    Grid.SetColumn(button, 0);
                    grdtest.Children.Add(button);

                    LayoutRoot.Children.Add(grdtest);
                    TripList.Items.Add(grdtest);

                });

        }

Grid grdtest=新网格();
foreach(TripsList lst在TripList.Items中)
{
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(()=>
{
添加(新的RowDefinition(){});
grdtest.ColumnDefinitions.Add(新ColumnDefinition(){});
按钮按钮=新按钮();
button.HorizontalAlignment=HorizontalAlignment.Right;
button.VerticalAlignment=VerticalAlignment.Top;
按钮。边距=新厚度(3);
按钮宽度=80;
按钮,高度=25;
button.Content=“btn1”;
Grid.SetRow(按钮,0);
Grid.SetColumn(按钮,0);
grdtest.Children.Add(按钮);
LayoutRoot.Children.Add(grdtest);
三列.项目.添加(grdtest);
});
}
有人能告诉我解决这个问题的方法吗。提前谢谢


将此foreach转换为for循环。由于您无法在foreach中修改集合…

感谢您的回复。我试过了,但是得到了同样的异常。似乎你不能直接添加任何项目。您可以做的是在集合中添加项,该集合已绑定为ItemsSource,并带有listbox。列表框将自动更新。
foreach (TripsList lst in TripList.Items) 
        { 

            System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => 
                { 

                    grdtest.RowDefinitions.Add(new RowDefinition() { }); 
                    grdtest.ColumnDefinitions.Add(new ColumnDefinition() { }); 
                    Button button = new Button(); 
                    button.HorizontalAlignment = HorizontalAlignment.Right; 
                    button.VerticalAlignment = VerticalAlignment.Top; 
                    button.Margin = new Thickness(3); 
                    button.Width = 80; 
                    button.Height = 25; 
                    button.Content = "btn1"; 
                    Grid.SetRow(button, 0); 
                    Grid.SetColumn(button, 0); 
                    grdtest.Children.Add(button); 

                    LayoutRoot.Children.Add(grdtest); 
                    TripList.Items.Add(grdtest); 

                }); 

        }