Я создал пользовательский элемент управления wpf с текстовым полем и поле со списком. для доступа свойства текста в текстовом поле я использовал код нижеОшибка при доступе к элементу управления в пользовательском элементе wpf
public static readonly DependencyProperty TextBoxTextP = DependencyProperty.Register(
"TextBoxText", typeof(string), typeof(TextBoxUnitConvertor));
public string TextBoxText
{
get { return txtValue.Text; }
set { txtValue.Text = value; }
}
в другом проекте я использовал контроль и связать текст, как показано ниже:
<textboxunitconvertor:TextBoxUnitConvertor Name="wDValueControl" TextBoxText="{Binding _FlClass.SWa_SC.Value , RelativeSource={RelativeSource AncestorType=Window}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Width="161" Height="28" HorizontalAlignment="Left" VerticalAlignment="Top"/>
я уверен, что класс, который используется для привязки, корректно работает, потому что, когда я использовал его для бинга с текстовым полем непосредственно в моем проекте, он работает правильно, но когда я привязываю его к текстовому свойству текстового поля в usercontrol, он приносит null и привязка не работает. Может ли кто-нибудь мне помочь?
спасибо много. Другой вопрос. если мне нужно связать созданное свойство TextBoxText с другим свойством, как показано ниже, как я могу это сделать. частный двойной _CurrentValue; [Доступно для просмотра (false)] public double CurrentValue { Получить { { return _CurrentValue; } set {_CurrentValue = значение; } } – ali
Зарегистрируйте PropertyChangedCallback, как показано в отредактированном ответе. – Clemens
очень хорошо. но если вставить двустороннюю привязку, как это может быть? это означает, что если пользователь изменил текст текстового поля в пользовательском элементе управления, связанный с ним класс в главном проекте изменился бы на него? – ali