Итак, я только что создал новый проект и пытаюсь добавить некоторые данные в коллекцию в моей ViewModel, однако, когда я добавляю в него данные, он добавляет, но не обновляет пользовательский интерфейс.
Этогде я устанавливаю DataContext и где я пытаюсь добавить контент в коллекцию
ProxyService ps;
public MainWindow()
{
InitializeComponent();
DataContext = new BaseViewModel();
ps = new ProxyService();
ps.AcceptConnection();
}
Имейте в виду, он добавляет его в коллекцию, ошибок нет, я его отладил, и этов коллекции.ProxyServer.cs
public class ProxyService : MessageViewModel
{
public void AcceptConnection()
{
Messages.Add(new MessageModel { Message = "Awaiting connection..." });
Вот BaseViewModel
public class BaseViewModel
{
public MessageViewModel MessageViewModel { get; set; } = new MessageViewModel();
}
И конечно же MessageViewModel
public class MessageViewModel : ObservableObject
{
private ObservableCollection<MessageModel> _messages;
public ObservableCollection<MessageModel> Messages
{
get { return _messages; }
set
{
_messages = value;
OnPropertyChanged();
}
}
public MessageViewModel()
{
Messages = new ObservableCollection<MessageModel>();
}
}
А вот XAML для ScrolLViewer, для которого яя добавляю данные
<ScrollViewer Height="380"
Margin="10"
>
<StackPanel>
<ItemsControl ItemsSource="{Binding MessageViewModel.Messages}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock FontFamily="Consolas"
Foreground="#61d73d"
Text="{Binding Message}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
Проблема, с которой я сталкиваюсь, заключается в том, что она не обновляет пользовательский интерфейс при добавлении чего-либо. Однако!Если я добавлю что-то в конструктор, он будет работать нормальноВ качестве примера это работает просто отлично, оно показывает это в представлении соответственно
public MessageViewModel()
{
Messages = new ObservableCollection<MessageModel>();
Messages.Add(new MessageModel { Message = "Hello World!" });
}
Мое лучшее предположение - это добавление к другому какому-то экземпляру, но я не уверен, я действительно не хочуЯ должен использовать синглтон, потому что я чувствую, что это разрушит шаблон MVVM.