그래서, 난 내 자신의 하위 클래스 ChildView (나는 정말 괜찮은 이름을 가지고 올 수 없다), 나는 창문에 컨테이너 안에 표시하고 싶습니다, 나는 많은 이러한 종류의 UserControl과 창은 모두이를 보여줄 수 있어야합니다. 된 UserControls이처럼 내 서브 클래스를 구현 한 :데이터 바인딩을 사용자 정의 UserControl
<src:ChildView x:Class="(namespace).LoginView" [...]>
public partial class LoginView : ChildView
그리고 나는 그렇게처럼 내 창에 추가하는 것을 시도했다 :
<Grid x:Name="ViewHolder" Grid.Column="1" Grid.Row="1">
<src:ChildView DataContext="{Binding CurrentView}" />
</Grid>
private ChildView _currentView;
public ChildView CurrentView
{
get { return _currentView; }
set
{
if (_currentView == value)
return;
_currentView = value;
smLog.Trace("View set to {0}", value.GetType().Name);
NotifyPropertyChanged("CurrentView");
}
}
그러나 이것은 wo가 아닙니다. rk. CurrentView를 설정할 때 컨테이너에 아무 것도 표시되지 않습니다. 출력에 바인딩에 문제점을 나타내는 오류 메시지가 없습니다. 창에있는 다른 데이터 바인딩이 작동합니다.
<Grid x:Name="ViewHolder" Grid.Column="1" Grid.Row="1">
<src:LoginView />
</Grid>
내가 종속성 속성에 대한 몇 가지를 읽었습니다하지만 난 여기에 하나를 필요가 있다고 생각하지 않습니다 나는 즉는 XAML에서 직접 클래스를 지정하여 내 ChildViews을 사용할 수 있습니까? 어쨌든 하나를 구현하려고했지만 도움이되지 않았다. 아마도 실수를했지만, 내 머리를 감쌀 수 없었다. ...
내 질문에; 종속성 속성이 필요합니까? 그렇다면 어떻게 구현합니까? 그렇지 않은 경우 문제가 무엇입니까?
에보기를 결합하는 것 때문에. 그것은 wpf 유틸리티이며 매우 유용한 당신의 컨트롤이 눈금에 존재하는지 확인하는 데 매우 유용합니다. – Eugene
Snoop에 따르면 ViewHolder에 "[007] ChildView 2"가 포함되어 있으며 해당 속성을 검사하면 DataContext가 녹색으로 강조 표시됩니다. "[(네임 스페이스) .LoginView] {경로 = 현재보기}". IsInitialized, IsLoaded, IsVisible, IsEnabled 모두 참입니다 ... 높이와 너비는 적당한 값을가집니다. – moggizx