마크 업 확장 프로그램을 작성하고 있습니다. 나는 생성자가 하나 개의 문자열 인수를 복용이현재 바인딩 값
<TextBlock Text="{ui:Test SomeInfo}" />
및 TestExtension 같은 XAML 있습니다. "SomeInfo"문자열이 나옵니다. 그래서 모든 것이 발견됩니다. 이제 내선 번호를 중첩하고 다음과 같이 작성하고 싶습니다.
<TextBlock Text="{ui:Test {Binding PropName}}" />
그리고 그대로 작동하지 않습니다. System.Windows.Data.Binding 유형의 인수를 취하는 생성자를 추가해야했습니다.
는 지금은
- 가 어떻게 바인딩 개체에서 현재 값을 검색해야 알 필요가?
- 언제해야합니까? ProvideValue 메서드에서 매번 변경 사항을 구독하거나 그 값을 요청해야합니까?
갱신 1 PROPNAME는 TextBlock에의 DataContext에 대해 해결해야합니다. 당신의 MarkupExtension
더 DataContext
이 없기 때문에이 같은 How do I resolve the value of a databinding?
실제로 Textblock의 DataContext를 사용하고 싶습니다. – adontz
@adontz : 앞에서 말했듯이, 보통의 Binding with converter를 사용하는 것이 더 나을 것입니다. 자신의 MarkupExtension 내부의 바인딩을 작동시키는 것이 고통입니다. –
마크 업 사용자에게 중요한 일관성있는 구문을 제공하기 때문에이 고통을 받아들입니다. – adontz