Редактировать ListBoxItem в зависимости от условия - PullRequest
0 голосов
/ 04 июня 2018

Я строю чат для школьного проекта.В чате есть список со всеми сообщениями.

 <ListBox x:Name="msglistBox" ItemsSource="{Binding Messages, Mode=OneWay}">

Messages - это ObservableCollection, который содержит все сообщения.Класс Message имеет переменную имени отправителя.В чате есть user_name зарегистрированного пользователя и user_name пользователя, который отправил любое сообщение.

Я хочу добавить опцию для редактирования сообщения, но я хочу убедиться, чтоэто может сделать только пользователь, отправивший сообщение.В идеале кнопка «редактировать» будет видна только отправителю сообщения, а не любому другому пользователю.

Как добавить кнопку, позволяющую пользователю редактировать сообщение в списке?

И как я могу сделать так, чтобы только пользователь, отправивший сообщение, мог видеть эту кнопку?

1 Ответ

0 голосов
/ 04 июня 2018

Вам следует отредактировать шаблон ListBoxItem, чтобы он имел кнопку и текстовый блок.

Ваш ListBox DataContext должен быть списком нового класса, который будет иметь строку (message) и флаг, чтобы он мог изменить сообщение (bool), которое будет инициализировано с вашими условиями.Примерно так:

<Window.Resources>
    <DataTemplate x:Key="ChatTemplate">
        <Grid>
            <TextBlock Text="{Binding Path=Message}"/>
            <Button IsEnabled="{Binding IsAuthor}"></Button>
        </Grid>
    </DataTemplate>
</Window.Resources>

<ListBox ItemsSource="yourNewClassList" ItemTemplate ="ChatTemplate" />

Если вам нужна новая помощь, просто дайте мне знать

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