列表框未出现在设备上

时间:2013-03-22 06:27:34

标签: c# silverlight windows-phone-7 listbox

我正在为Windows手机开发一个应用程序,我最近遇到了列表框问题。这在我的模拟器上工作正常但是当我在我的设备上部署时,它不显示任何空白。列表项是按照请求创建的,但绑定不会执行,因为单击时每个项都不带有信息。 与之相关的代码如下

XAML

<ListBox Name="NotesListBox" Grid.Row="0" Margin="15,0" >
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <toolkit:WrapPanel Orientation="Horizontal" />
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>                
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <local:NotesTile Name="TileNotes" Tap="NotesTile_Tap_1" Margin="10,10"/>
                        <TextBlock Text="{Binding FileName}" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

背后的C#代码

 List<Notes> source = new List<Notes>()
            {
                new Notes(){ Content="This is some text", FileName="one.txt", IsPasswordProtected=true},
                new Notes(){ Content="Another text file", FileName="two.txt", IsPasswordProtected=false}
            };


            //this.DataContext = this;
            this.NotesListBox.ItemsSource = source;

在相同的命名空间中,我得到了类:

class Notes
{
    public string Content { get; set; }
    public string DateEdited { get; set; }
    public string TimeEdited { get; set; }
    public string FileName { get; set; }
    public bool IsPasswordProtected { get; set; }
}

我在模拟器上工作正常,甚至是用于Windows Phone 8的设备。由于同样的原因,我的应用程序在市场上遭到拒绝。

修改

Binding类应该始终是公共的。将Notes类公开为可以解决此问题。

1 个答案:

答案 0 :(得分:0)

尝试在InitilizeComponent()之前在xaml.cs的构造函数中设置this.DataContext = this;,并告诉我们它是否正常工作。