根据条件编辑ListBoxItem

时间:2018-06-04 08:36:09

标签: c# wpf

我正在建造一个学校项目的聊天室。在聊天室中有一个包含所有消息的列表框。

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

MessagesObservableCollection,其中包含所有消息。 Message类具有发件人名称变量。聊天室知道登录用户的user_name和发送任何给定消息的用户的user_name

我想添加编辑邮件的选项,但我想确保只有发送邮件的用户才能这样做。理想情况下,“编辑”按钮只对消息发送者可见,而不是任何其他用户。

如何添加允许用户编辑列表框中的消息的按钮?

我怎样才能让只有发送邮件的用户才能看到该按钮?

1 个答案:

答案 0 :(得分:1)

您应该编辑ListBoxItem模板,使其具有按钮和TextBlock。

您的ListBox DataContext应该是一个新类的列表,它将包含一个字符串(消息)和一个标志,以便它可以更改将根据您的条件初始化的消息(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" />

如果您有更多新的帮助,请告诉我