WPF UserCotrol을 만들었습니다. 그 안에는 기본적으로 3 개의 그리드가 있습니다.
visibility="collapsed"
입니다. 나는이 같은 종속성 속성을 만들었습니다wpf에서 사용자 지정 컨트롤의 종속성 속성 값을 설정하는 방법
public int PanelId
{
get { return (int)GetValue(PanelIdProperty); }
set { SetValue(PanelIdProperty, value); }
}
public static readonly DependencyProperty PanelIdProperty =
DependencyProperty.Register("PanelId", typeof(int), typeof(RecurrencePattern), new UIPropertyMetadata(1));
은 내가 다른 XAML에서이 사용자 컨트롤을 사용합니다. 나는이 같은 선언 : 내가 볼 수 무엇 패널 설정하는 데 사용할 수 실행할 때
<uc:RecurrencePattern PanelId="2"/>
내가이 일을하여 PanelId 2 일 것이라고 생각하고 기본 생성자. 대신 PanelId는 UIPropertyMetadata (1)에 정의 된대로 1입니다. xaml에 제공된 값을 사용하여 표시 할 그리드를 어떻게 설정할 수 있습니까? 내가 가진 : 기본 생성자에서
<Grid x:Name="a" Visibility="Collapsed">
<label Content"a"/>
</Grid>
<Grid x:Name="b" Visibility="Collapsed">
<label Content"b"/>
</Grid>
<Grid x:Name="c" Visibility="Collapsed">
<label Content"c"/>
</Grid>
이 있습니다 :
switch (PanelId)
{
case 1:
a.Visibility = System.Windows.Visibility.Visible;
break;
case 2:
b.Visibility = System.Windows.Visibility.Visible;
break;
case 3:
c.Visibility = System.Windows.Visibility.Visible;
break;
default:
a.Visibility = System.Windows.Visibility.Visible;
break;
}
감사합니다. 생성자가 완료되기 전에이 도움이
프로퍼티 세터 실행되지 않습니다. 귀하의 접근 방식은 이와 같이 작동하지 않습니다. 생성자의 코드를 예 : [OnInitialized] (http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.oninitialized.aspx) – Clemens
AngelWPF가 옳습니다. 그러나 여기에서 성취하고자하는 것에 대해서는 종속성 속성이 필요하지 않습니다. 간단한 CLR 속성을 사용하고 OnInitialized에서 값을 확인할 수 있습니다. – Clemens