나는 당신은 내가 <controls:WatermarkService.Watermark>
내부 "MainCategoryTextBlock"TextBlock의을 원하는 WatermarkService 구현을 여기 https://stackoverflow.com/a/836463/1548347변경의 DataContext - WPF
을 볼 수 있습니다
<AdornerDecorator>
<TextBox
Height="20"
Margin="10,0"
Grid.Column="0"
Text="{Binding MainCategoryTextBoxValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Name="MainCatTextBox">
<controls:WatermarkService.Watermark>
<TextBlock VerticalAlignment="Center" x:Name="MainCategoryTextBlock"> </TextBlock>
</controls:WatermarkService.Watermark>
</TextBox>
</AdornerDecorator>
내부에 워터 마크 텍스트 상자가 포함되어 사용자 제어 할 수 있습니다 내 ViewModel에서 RunTime의 워터 마크 텍스트를 변경하려면 DataContext를 UserControl DataContext와 동일하게 설정하십시오.
RelativeSource를 사용하여 "MainCategoryTextBlock"DataContext를 UserControl DataContext에 바인딩하려고했지만 성공하지 못했습니다 (구문 오류 일 수도 있습니다 - 확실하지 않습니다).
DataContext="{Binding DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
어떻게 해결할 수 있습니까?
감사
이 방법을 사용할 수 없습니다. 나는 코드에서 내 view의 datacontext를 설정했다. (필자의 PRISM 기반 응용 프로그램). 내 View에서 인스턴스를 생성하고 제안한 작업을 수행 할 경우 ViewModel의 인스턴스가 2 개 있습니다. – Ofir