DataContext приложения привязан к моей MainViewModel. Эта ViewModel имеет свойство services и некоторые другие свойства. Когда я запускаю службу, я хочу позвонить OnPropertyChanged("Services")
внутри моих StartService()
и RefreshServices()
, но она не обновляется.
Мой XAML / DataGrid:
<DataGrid x:Name="dataGrid" Grid.Row="2" Grid.ColumnSpan="8"
ItemsSource="{Binding Services}"
AutoGenerateColumns="False"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Display Name" Binding="{Binding DisplayName, Mode=OneWay}"/>
<DataGridTextColumn Header="Status" Binding="{Binding Status, Mode=OneWay}" />
<DataGridTextColumn Header="Machine Name" Binding="{Binding MachineName, Mode=OneWay }" />
<DataGridTextColumn Header="Can Stop" Binding="{Binding CanStop, Mode=OneWay}" />
</DataGrid.Columns>
</DataGrid>
Моя ViewModel:
namespace ServiceStarterPRAT.ViewModels
{
public class MainViewModel : ObservableObject
{
#region Services Properties
private ObservableCollection<ServiceController> _services;
private ObservableCollection<ServiceController> _selectedServices;
public ObservableCollection<ServiceController> SelectedServices
{
get
{
return _selectedServices;
}
set
{
if (_selectedServices == null) return;
_selectedServices = value;
OnPropertyChanged("SelectedServices");
}
}
public ObservableCollection<ServiceController> Services
{
get
{
_services.Clear();
var curenntServices = Utils.UpdateServices(ComputerNames);
foreach (var service in curenntServices)
if (service.MachineName == SelectedComputer)
if (Utils.CustomerNameOf(service) == SelectedCustomer)
_services.Add(service);
return _services;
}
set
{
//if (_services == null) return;
_services = value;
OnPropertyChanged("Services");
OnPropertyChanged("SelectedServices");
}
}
#endregion
Я думаю, что я не полностью понял OnPropertyChanged()
. Я думал, что всякий раз, когда я вызываю что-то вроде OnPropertyChanged("Services")
, все, что связано с Сервисами собственности, будет уведомлено и получит обновленные данные. Однако это не .. что я делаю не так. Какая информация вам нужна помимо моего XAML?