绑定ListBox数据时出错wp7

时间:2012-02-07 04:57:27

标签: windows-phone-7 silverlight-4.0

我试图在ListBox中使用一组复选框(在运行时创建)。我写的XAML是

<ListBox DataContext="{Binding}" Name="cuisineList">
               <ListBox.ItemTemplate>
                    <DataTemplate>

                        <Grid Height="45" Name="grid1" Margin="0,0,0,0">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="230*" />
                                    <ColumnDefinition Width="230*" />
                                </Grid.ColumnDefinitions>
                            <CheckBox Content="{Binding content}" Name="{Binding name}" Grid.Column="0"/>
                            <CheckBox Content="{Binding content}" Name="{Binding name}" Grid.Column="1"/>
                        </Grid>

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

,代码是

public ObservableCollection<Cuisine> Items = new ObservableCollection<Cuisine>();
    public Search()
    {
        InitializeComponent();
        for (int i = 0; i < 100; i++)
        {
            Items.Add(new Cuisine());
        }
        cuisineList.DataContext = Items;
    }

但是当我运行我的应用时,我没有看到任何复选框。请指出错误并帮助我纠正它。提前谢谢!

2 个答案:

答案 0 :(得分:1)

您需要设置列表框的itemsource,如下所示

<ListBox ItemsSource="{Binding Items}" Name="cuisineList">

                    

                    <Grid Height="45" Name="grid1" Margin="0,0,0,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="230*" />
                                <ColumnDefinition Width="230*" />
                            </Grid.ColumnDefinitions>
                        <CheckBox Content="{Binding content}" Name="Check1" Grid.Column="0"/>
                        <CheckBox Content="{Binding content}" Name="Check2" Grid.Column="1"/>
                    </Grid>

                </DataTemplate>
    </ListBox.ItemTemplate>

在* .xaml.cs文件中编写项目也有任何限制吗?

如果没有在视图模型中写入PageViewModel.cs文件

然后将Viewmodel类对象设置为page.xaml数据上下文。 (

  

this.DataContext = new PageViewModel();

在Page.xaml.cs文件的构造函数中写下此语句)

同时验证菜肴是否具有公共财产内容

答案 1 :(得分:-1)

您需要在列表框中设置项目来源。

<ListBox ItemsSource="{Binding}" Name="cuisineList">