Изменить содержимое метки на основе выбора ListBox - PullRequest
0 голосов
/ 13 марта 2012

У меня ListBox, связанный с ObservableCollection:

<ListBox Name="ListBoxItemsList">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Margin="0" FlowDirection="RightToLeft">
                <Button Content="Add me!" Click="AddItem" />
                <TextBlock Text="{Binding Path=name}" />
                <TextBlock Text="{Binding Path=description}"  />
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Объекты ObservableCollection имеют несколько свойств, включая uniqueID, name, description, colour, flavour. В зависимости от выбранного элемента в ListBox, я хотел бы заполнить некоторые метки свойствами выбранного элемента. Кроме того, кнопка каждого элемента должна выполнять уникальное действие (т.е. добавлять один из соответствующих элементов в массив), однако я не могу понять, как отправить уникальный аргумент в метод AddItem (). Я думал, что это будет общий случай использования, но я ничего не могу найти, прибегая к помощи.

Спасибо.

1 Ответ

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

В зависимости от выбранного элемента в ListBox, я хотел бы узнать подробности некоторых ярлыков для отображения свойств выбранного элемента

Вы можете привязать ListBox.SelectedItem к DependencyProperty, а затем просто привязать это свойство к этим меткам.

Кроме того, кнопка каждого элемента должна выполнять уникальное действие (т.е. добавить один из соответствующих элементов в массив), однако я не могу понять, как отправить уникальный аргумент в метод AddItem ().

Вы можете добавить идентификатор элемента в Button.Tag

<Button Content="Add me!" Click="AddItem" Tag={Binding Path=id} />

Тогда просто получите метку кнопки на отправителе

public void button_clicked(object sender, event e) {
    int id = ((Button)sender).Tag as Int32;
    ...
}

Редактировать : Вы также можете привязать полный элемент вместо просто Id к кнопке Tag.

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