列表框中当前项的名称

时间:2012-03-11 05:57:55

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

例如,我有一个简单的数据库(int id,string text)和listbox。 在每个列表框元素中,我有一个文本块,图像和按钮。

当我添加项目时,我希望每个项目的listobox被称为id。 当我单击按钮时,id将以另一种形式传递,我可以在其中编辑数据库帖子。

page.xaml

                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" >
                            <Image Source="{Binding IconSource}"/>
                            <StackPanel>
                                <TextBlock Text="{Binding Text}"/>
                                <Button Click="Edit_Click1"></Button>
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>

page.xaml.cs

    private void Edit_Click1(object sender, RoutedEventArgs e)
    {
        int id = 0; // i want to know id of current element of listbox
        NavigationService.Navigate(new Uri("/EditTask.xaml?currentID="+id, UriKind.Relative));

    }

我怎么能命名列表框的当前项目,然后知道这个元素的名称?抱歉可怕的英语。

2 个答案:

答案 0 :(得分:1)

您可以访问listbox.SelectedItem以获取所选项目:

private void Edit_Click1(object sender, RoutedEventArgs e)
{
    int id = (listbox.SelectedItem as MyClass).Id; 
    NavigationService.Navigate(new Uri("/EditTask.xaml?currentID="+id, UriKind.Relative));

}

答案 1 :(得分:1)

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var button = ((System.Windows.Controls.Button)sender);
        var clickedItem = (DataItem)button.DataContext;
        MessageBox.Show(clickedItem.Name);
    }

这里我假设DataItem是代表每个项目的类的名称。