2 years ago

#46570

test-img

Mornepousse

WPF: How to notify the modification of an interface that changes in a DLL on the bindings side

How to notify the modification of an interface that changes in a DLL on the bindings side.

To explain:

Dll code is not editable:

public interface IPlayer
    {
        int Id { get; }
        string Name { get; }
        Settings Settings { get; }
        PlayerCategory Category { get; }
    }

public class TennisPlayer: IPlayer
    {
        public virtual int Id { get; }
        public virtual string Name { get; set; }

        public Tennisman(int id, string name)
        {
            Id = id;
            Name = name;
        }

        public Settings Settings { get; set; }
        public PlayerCategory Category { get; set; }
    }

My code:

public partial class PlayerItem : NotifyUserControl
    {

private DispatcherTimer timer = new DispatcherTimer();

        public static readonly DependencyProperty PlayerProperty =
            DependencyProperty.Register("Player", typeof(IPlayer),
                typeof(PlayerItem),
                new PropertyMetadata(null, OnCaptionPropertyChanged));

        public IPlayer Player
        {
            get { return (IPlayer)GetValue(PlayerProperty); }
            set
            {
                SetValue(PlayerProperty, value);
            }
        }

        public string PlayerName
        {
            get => Player != null ? Player.Name : "";
            set => OnPropertyChanged();
        }
        public PlayerItem()
        {
            InitializeComponent();
            timer.Interval = new TimeSpan(0, 0, 4);
            timer.Tick += Timer_Tick;
            timer.Start();
        }

        private void Timer_Tick(object sender, EventArgs e)
        {
            OnPropertyChanged(nameof(PlayerName));
        }

The external dll gives me player classes( for example: tennisman, footballer...) based on the same interface.

But I don't know it and I don't have to do class by class.

I must be missing something huge, but I managed to find nothing in my research.

wpf

interface

inotifypropertychanged

polling

0 Answers

Your Answer

Accepted video resources