название текущего элемента в списке - PullRequest
1 голос
/ 11 марта 2012

например, у меня есть простая база данных (int id, текст строки) и список.в каждом элементе списка есть текстовое поле, изображение и кнопка.

когда я добавляю элементы, я хочу, чтобы каждый элемент listobox был известен как 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 ]

1 голос
/ 11 марта 2012
    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 - это имя класса, который представляет каждый элемент.

1 голос
/ 11 марта 2012

Вы можете получить доступ к 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));

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...