Как сделать двухстороннюю привязку к свойству usercontrol (Public String)? - PullRequest
0 голосов
/ 22 декабря 2011

Найти все результаты о том, как связать элемент управления в пользовательском контроле. Но моя проблема сейчас очень проста, что просто связать значение в Pulic String MyBindingString {get; задавать; }

Я пытался как, но получил ошибку при входе на эту страницу Задание свойства 'xxxx.xxx.xxxx.xx.MyBindingString' вызвало исключение

Спасибо за вашу помощь.


Теперь я обнаружил, что при привязке в коде "Text = {Binding MyCustomText, Mode = TwoWay}"

то, что фактически передается MyBindingString, является классом: System.Windows.Data.Binding не значение ...

Есть идеи?

Ответы [ 2 ]

1 голос
/ 22 декабря 2011

Если заголовок вашего вопроса четко определен.Вы ищете «Режим» в привязке.

для двухстороннего режима, Mode = TwoWay, пример:

"Text={Binding MyCustomText, Mode=TwoWay}"
0 голосов
/ 21 мая 2012

Если вы хотите создать привязываемые свойства в вашем UserControl - вот способ сделать это:

        #region MyCustomText

        public string MyCustomText
        {
            get { return GetValue(MyCustomTextProperty) as string; }
            set { SetValue(MyCustomTextProperty, value); }
        }

        public static readonly DependencyProperty MyCustomTextProperty = DependencyProperty.Register("MyCustomText",
          typeof(string), typeof(MyUserControl), new System.Windows.PropertyMetadata(null, new PropertyChangedCallback(OnMyCustomTextChanged)));

        public static void OnMyCustomTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            var control = sender as MyUserControl;
            var value = e.NewValue as string;
        }

        #endregion MyCustomText
...