"추가"버튼이있는 텍스트 상자 (textBox1)가 포함 된 TextBoxAndMore라는 사용자 정의 컨트롤이 있습니다. 이 사용자 정의 컨트롤에는 Text라는 속성이 있습니다. 이 Text 속성을 사용하여 텍스트 상자의 텍스트를 미러링합니다.내 사용자 정의 컨트롤에서 바인딩이 작동하지 않습니다.
내 XAML에서이 같은, 내 뷰 모델에 설명라는 문자열 속성에 바인딩 할 수 있도록이 속성은 바인딩 싶습니다:
<my:TextBoxAndMore Text="{Binding Path=Description}" />
을 그래서 코드를 다음있다 ()이 propdb 조각에 의해 생성 : 텍스트 상자에, 내가 TextChanged 이벤트 핸들러 인 아이디어에 부착이 코드를 가지고,
// Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(String), typeof(TextBoxAndMore),
new UIPropertyMetadata(String.Empty));
public String Text
{
get { return (String)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
그리고 그 때 텍스트 상자에 사용자 유형이 사용자의 Text 속성 제어권 변경 :
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
Text = textBox1.Text;
}
그러나 최종 결과는 바인딩이 작동하지 않는 것입니다. 출력 창에 오류가 없으며 내 ViewModel의 Description 속성이 설정되지 않습니다 (null로 유지됨).
분명히 분명하지만 WPF를 처음 접했고 몇 가지 지침을 고맙게 생각합니다. 또한 컨트롤에 TextChanged 이벤트 코드를 제거하고 또한 컨트롤의 Text 속성에 바인딩 양방향을 사용할 수
<my:TextBoxAndMore Text="{Binding Path=Description Mode=TwoWay}" />
:
대신 변경할 바인딩은 'TwoWay'가되어 사용자가 만든 업데이트가 자동으로 속성으로 돌아갑니다. – Gabe
고맙습니다. XAML을 ' '로 변경했으나 여전히 같은 문제가있는 것 같습니다. –
Matt