Итак, у меня есть простое приложение чата UDP из проекта WinForm, которое я хотел бы выглядеть немного лучше, поэтому я переделываю его в WPF. Как я понял, что я могу легко поставить 2 или более TextBlocks внутри ListItem, я хотел, чтобы отобразить последнее сообщение каждого чата, например, так:Как обновить текст TextBlock внутри элемента ListBox
Но я понятия не имею о том, как изменить этот TextBlocks :(Я литературный только начал с WPF, так что я держал пари, я только что сделал дубликат, но из-за этого, я даже не знаю, как искать этот вопрос
Вот обычай ListBox:.
<ListBox x:Name="myList" HorizontalAlignment="Left" Width="264" ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.HorizontalScrollBarVisibility="Disabled" BorderThickness="0,1,1,0" MouseLeftButtonUp="myList_MouseLeftButtonUp" Margin="0,25,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="LightGray" BorderThickness="0,0,0,1" Width="250">
<DockPanel Margin="0,7">
<Ellipse Name="ellipse" Margin="5" DockPanel.Dock="Left" Style="{DynamicResource elstyle}">
</Ellipse>
<TextBlock Text="{Binding Name}" DockPanel.Dock="Top" Margin="0,0,0,7" FontWeight="Bold" MaxWidth="250"></TextBlock>
<TextBlock Text="{Binding ID}" DockPanel.Dock="Top" Visibility="Hidden" FontSize="1.333"></TextBlock>
<TextBlock x:Name="last_message" Text="{Binding LastMessage}" DockPanel.Dock="Bottom" MaxWidth="250"></TextBlock>
</DockPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Что вы подразумеваете под _ «как обращаться к этим текстовым блокам», _? Ваши «TextBlocks» выглядят отлично. Как выглядит модель вашего элемента? Имеет ли он ** общедоступные свойства ** Name, 'ID' и' LastMessage' ** **? – dkozl
Извините, я имел в виду, как их редактировать. Я хотел бы вставить последнее сообщение каждый раз, когда клиент получает его. Например, что-то вроде этого: 'ListBox.Items [0] .last_message.text =" Привет, это Zalma ";' – Caddaile
Вы их не редактируете. Вы изменяете связанное свойство LastMessage в своей модели представления, и если это вызывает ['INotifyPropertyChanged.PropertyChanged'] (https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.propertychanged (v = vs .110) .aspx), он будет подхвачен пользовательским интерфейсом, и «TextBlock» будет обновлен. Как выглядит классный класс? – dkozl