Перейти к содержимому


- - - - -

Не отслеживается изменение зависимого свойства

WPF C# INotifyPropertyChanged

  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 1datr

1datr
  • Новичок

  • Новичок
  • 6 сообщений

Отправлено 16.10.2014 - 21:09

В проге есть 2 контрола. У них есть одинаковое зависимого свойство кастомного класса, наследующего интерфейс INotifyPropertyChanged. В программе контрол A слушает данное свойство контрола B. Само значение этого свойства меняется (все его поля. проверил), но сам момент изменения его не удается уловить обычным PropertyChangedCallback, который задается при DependencyProperty.Register. Значение меняется, а к этому колбэку не переходит управление.
Код класса этого свойства:
public class StackerWorkData : INotifyPropertyChanged 
		{
			private Int32 _X;
			public Int32 X
			{
				get
				{
					return _X;
				}
				set
				{
					_X = value;
					onpropertychanged("X");
				}
			}

			private Int32 _Y;
			public Int32 Y
			{
				get
				{
					return _Y;
				}
				set
				{
					_Y = value;
					onpropertychanged("Y");
				}
			}


			private Int32 _Z;
			public Int32 Z
			{
				get
				{
					return _Z;
				}
				set
				{
					_Z = value;
					onpropertychanged("Z");
				}
			}

			private Int32 _cell;
			public Int32 Cell
			{
				get
				{
					return _cell;
				}
				set
				{
					_cell = value;
					onpropertychanged("Cell");
				}
			}

			private StackerCommand _cmd;
			public StackerCommand cmd
			{
				get
				{
					return _cmd;
				}
				set
				{
					_cmd = value;
					onpropertychanged("cmd");
				}
			}


			/// <summary>
			/// Occurs when a property value changes.
			/// </summary>
			public event PropertyChangedEventHandler PropertyChanged;

			/// <summary>
			/// Called when [property changed].
			/// </summary>
			/// <param name="name">The name.</param>
			private void onpropertychanged(string name)
			{
				if (PropertyChanged != null)//BiopsyCore
				{
					PropertyChanged(this, new PropertyChangedEventArgs(name));
				}
			}


		}


StackerControl слушает свойство WorkParams контрола StackerManBNR.

<my:StackerControl  ... WorkParams="{Binding ElementName=stacker1_man, Path=WorkParams}"></my:StackerControl>

Свойство WorkParams изменяется, но момент изменения этого свойства, в частности когда меняются X,Y,Z не улавливается программой.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей