저는 ContentObject 속성을 가진 사용자 정의 컨트롤이 있으며 사용자 지정 콘텐츠를 지정하는 데 사용합니다. 내 메인 윈도우에서 종속 속성에 바인딩 된 중첩 레이블을 만들었습니다.ContentPresenter 자식 요소를 외부 컨트롤에 이름으로 바인딩 할 수 없습니다.
MainWindow.xaml :
<Window x:Class="TestContentPresenter.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestContentPresenter"
Title="MainWindow" Height="350" Width="525" Name="MyWindow">
<Grid>
<local:MyUserControl>
<local:MyUserControl.ContentObject>
<!--<TextBlock Text="{Binding MyText, ElementName=MyWindow}"/>-->
<TextBlock Text="{Binding MyText, RelativeSource={RelativeSource AncestorType=Window}}"/>
</local:MyUserControl.ContentObject>
</local:MyUserControl>
</Grid>
</Window>
UserControl.xaml :
<UserControl x:Class="TestContentPresenter.MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestContentPresenter"
Height="300" Width="300" Name="MainControl">
<StackPanel>
<ContentPresenter Content="{Binding ContentObject, ElementName=MainControl}"/>
</StackPanel>
</UserControl>
내가 RelativeSource와 바인딩,하지만 난 이름 요소를 참조하는 경우 어떤 이유로 작동하지 않는 경우 잘 작동
주 창에 MyText 종속성 속성이 있으며 주석 처리 된 선은 작동하지 않습니다. 나는 이것이 이름 범위와 관련이 있다고 의심하지만, 내가 잘못하고있는 것은 무엇인가?
Window의 relativeSource에 대한 바인딩이 적절하지 않은 다른 사용자 정의 컨트롤에서 어떻게 활용할 수 있습니까? – Gui