繁体   English   中英

XAML中的Windows Phone 8 DataTemplate不显示数据

[英]Windows phone 8 DataTemplate in XAML not showing data

我想在我的应用程序的数据模板中显示一些信息,但是当它运行时,它在列表框中什么也没有显示。

这是课程代码(称为笔记的课程)

public class notes
{
    public string strNoteName { get; set; }
    public string strCreated { get; set; }
    public string strModified { get; set; }
    public bool boolIsProtected { get; set; }
    public string strNoteImage { get; set; }

    public static ObservableCollection<notes> GetnotesRecord()
    {
        ObservableCollection<notes> notesRecord = new ObservableCollection<notes>  
       {  
           new notes{strNoteName="Science",strCreated="17/07/2014",strModified="17/07/2014",boolIsProtected=true,strNoteImage=""},  
           new notes{strNoteName="Math",strCreated="12/02/2014",strModified="15/07/2014",boolIsProtected=false,strNoteImage=""},  
           new notes{strNoteName="HW",strCreated="05/06/2014",strModified="2/07/2014",boolIsProtected=false,strNoteImage=""},  
           new notes{strNoteName="Business",strCreated="23/04/2014",strModified="17/07/2014",boolIsProtected=true,strNoteImage=""},

       };
        return notesRecord;
    }

    public ObservableCollection<notes> _notes;
    public ObservableCollection<notes> allNotes
    {
        get
        {
            return _notes;
        }
        set
        {
            _notes = value;

        }
    }    

}

这是XAML代码:

<ListBox Margin="0,10,0,88">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Grid Margin="0,5,0,0">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="auto"></ColumnDefinition>
                                    <ColumnDefinition></ColumnDefinition>
                                </Grid.ColumnDefinitions>
                                <Image Source="{Binding strNoteImage}" Height="80" Width="80" Grid.Column="0"></Image>
                                <StackPanel Grid.Column="1" Orientation="Vertical" Width="150" Height="100" >
                                    <TextBlock Text="{Binding strNoteName}" Margin="5,1,0,1"></TextBlock>
                                    <TextBlock Text="{Binding strCreated}" Margin="5,1,0,1"></TextBlock>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="Last modified: " Margin="5,1,0,1"></TextBlock>
                                        <TextBlock Text="{Binding strModified}" Margin="3,1,0,1"></TextBlock>
                                    </StackPanel>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="Is protected: " Margin="5,1,0,1"></TextBlock>
                                        <TextBlock Text="{Binding boolIsProtected}" Margin="3,1,0,1"></TextBlock>
                                    </StackPanel>
                                </StackPanel>

                            </Grid>

                        </StackPanel>


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

预先感谢您的任何帮助 :)

您缺少将ItemsSource设置为Listbox的方法,

您可以在XAML中执行此操作,并在后面的代码中设置DataContext,例如

<ListBox Margin="0,10,0,88" Name = "lstBox1" ItemsSource= "{Binding}" />

在后面的代码中

  This.DataContext = GetnotesRecord();

要么

   lstBox1.ItemsSource = GetnotesRecord();

将列表框定义更改为

<ListBox Margin="0,10,0,88" ItemsSource="{Binding}">

并在C#代码中设置

this.DataContext = Notes.GetnotesRecord();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM