App.xaml _________________________________________________________ using System; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows.Input; namespace EllipsePropertyChangeDemo { public class EllipseViewModel : ObservablePropertyChange, ICommand // DependencyObject { public bool _ServerConnected; public bool ServerConnected { get { return _ServerConnected; } set { if (_ServerConnected != value) { _ServerConnected = value; OnPropertyChanged(); } } } public event EventHandler? CanExecuteChanged; public bool CanExecute(object? parameter) => true; public void Execute(object? parameter) => ServerConnected = !ServerConnected; } public class ObservablePropertyChange : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; internal void OnPropertyChanged([CallerMemberName] string propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } } ________________________________________________________ ______________________________________________________ using System.ComponentModel; using System.Windows; using System.Windows.Controls; namespace EllipsePropertyChangeDemo { /// /// Interaction logic for EllipseControl.xaml /// public partial class EllipseControl : UserControl { EllipseViewModel evm = new EllipseViewModel(); public EllipseControl() { InitializeComponent(); //this.DataContext = evm; //evm.PropertyChanged += UpdateLED; } private void UpdateLED(object sender, PropertyChangedEventArgs e) { if (e.Equals(true)) { this.LED.Style = (Style)App.Current.FindResource("GreenLED"); } } } } __________________________________________________ ________________________________________________________