wptoolkit windows phone 8 AutocompleteBox

时间:2014-05-25 21:49:06

标签: c# xaml windows-phone-8

我能够将自动完成框连接到隔离存储中的本地数据库,并且可以正常工作。我一直试图使用选择更改事件来获取所选项目。这是我的班级

[Table]
public class Hymns
{
    [Column(IsPrimaryKey=true, IsDbGenerated=true, DbType="INT NOT NULL Identity", CanBeNull=false, AutoSync=AutoSync.OnInsert)]
    public int hymnId { get; set; }

    [Column]
    public string Title { get; set; }

    [Column]
    public string Number { get; set; }

    [Column]
    public string Audio { get; set; }

    [Column]
    public string Stanza { get; set; }

    [Column]
    public bool IsFavorite { get; set; }
} 

我试过这段代码:

 private void acBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.AddedItems.Count > 0)
        {
            MessageBox.Show(e.AddedItems[0].ToString());
        }
    }

我仍然没有得到价值。我想得到赞美诗的财产。 任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

尝试将AddedItems[0]投射到Hymns,例如:

MessageBox.Show(((Hymns)e.AddedItems[0]).hymnId);

...或分为几行以便于阅读:

Hymne selectedHymne = (Hymns)e.AddedItems[0];
MessageBox.Show(selectedHymne.hymnId);

答案 1 :(得分:0)

感谢您的回答。我使用选择更改事件处理程序来弄清楚

private void acBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count > 0)
            {
                ItemViewModel firstItem = e.AddedItems[0] as ItemViewModel;
                if (firstItem != null)
                {
                    int fileId = firstItem.HymnId;
                    fileId = fileId - 1;
                    NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem=" + fileId, UriKind.Relative));
                }
            }
        }