Я не думаю, что элемент управления сообщит об изменениях свойств ширины и высоты слушателям привязки данных.
Попробуйте добавить INotifyPropertyChanged
к элементу управления и самостоятельно принять свойства Width
и Height
.
Пример использования элемента управления Panel
:
public class PanelEx : Panel, INotifyPropertyChanged {
public event PropertyChangedEventHandler PropertyChanged;
public new int Width {
get { return base.Width; }
set {
base.Width = value;
OnPropertyChanged("Width");
}
}
public new int Height {
get { return base.Height; }
set {
base.Height = value;
OnPropertyChanged("Height");
}
}
private void OnPropertyChanged(string propertyName) {
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
Затем измените вызов привязки данных на этот, где this
- это ваш элемент управления с вышеприведенной реализацией:
this.DataBindings.Add("Width", E, "Width", false, DataSourceUpdateMode.OnPropertyChanged);
this.DataBindings.Add("Height", E, "Height", false, DataSourceUpdateMode.OnPropertyChanged);