내가 겪고있는 문제에 대한 해결책을 찾기 위해 애쓴다. 나는 주변에서 놀고있는 UWP 앱을 가지고 있으며, 대부분은 일을 할 수 있었다. .프레임의 페이지에서 사용자 정의 컨트롤에서 DataContext에 액세스 할 때의 문제
내가 직면 한 문제는 Hambuger Menu와 관련된 것입니다. 항목을 그리드 뷰로 표시하는 페이지를로드하는 프레임이 있습니다. 클릭하면 해당 프레임에 다른 페이지가 표시됩니다.
페이지에 데이터를 전혀 표시 할 수없는 새 페이지가 있습니다. 이 페이지의 XAML에서
public sealed partial class CreatureDossier : Page
{
private Species Cat;
public CreatureDossier()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Cat = (Species)e.Parameter;
}
}
는 내가 존재하고 어디 고투있는 데이터를 사용하고자하는 UserControl이를 걸었습니다. User Control을 중단 할 때마다 DataContext가 비어 있음 (null)으로 표시됩니다. 내가
<UIControls:DossierPanel />
을 시도
정말 DataContext를가 null의 언급 나는이 사용자 제어, 내가 UserControl을에 있지만 같은이 있다고 지적한다의 DataContext를 사용할 수 있도록 할 필요가있는 무슨 이해하지 못하는 .
<TextBlock x:Name="CatName" Text="{Binding Cat.name}" />
이제 재미있는 것은 내가 일반 텍스트 문자열과 뒤에 UserControl을 코드에서 DependencyProperty에와있는 UserControl에 고양이라는 속성을 사용하는 경우, 내가 생성자에서 = this.DataContext와이 그를 표시 할 수 있다는 것입니다 .
사용자 제어 코드
public sealed partial class DossierPanel : UserControl
{
public Models.Species Cat { get { return this.DataContext as Models.Species; } }
public DossierPanel()
{
this.InitializeComponent();
}
}
CreatureDossier.xaml
<TextBlock x:Name="CreatureName" Text="{x:Bind Cat.name}" />
<UIControls:DossierPanel />
내가 좋은 것입니다 무엇을해야하는지 이해하는 데 어떤 도움 뒤에.
이전에이 정보를 표시 할 데이터가 이미 있습니다. 반면에 사용자 정의 컨트롤은 null로 DataContext를 표시합니다. UserControl 위로 Cat 객체를 전달하는 DP의 초기 방법을 사용해야합니까? 원래 나는이 대중이 부분 클래스 DossierPanel 밀봉했다 : UserControl을 를 { 공공 Models.Species 고양이 {Models.Species로 this.DataContext 반환 {얻을; }} public DossierPanel() { this.InitializeComponent(); } } –
DossierPanel의 DataContext를 설정하면 안됩니다. 이러는거야? 이 내용을 읽고 이에 따라 질문을 수정하십시오. https://stackoverflow.com/help/mcve – mm8
아니요 DossierPanel에 DataContext를 설정하지 않습니다. 데이터를 반환하는 읽기 전용 속성이 있습니다. –