我在SL中設置了自定義控件,並試圖讓控件的默認外觀正常工作。我覺得(在這裏一些聰明人的幫助下),我正在接近這一點,但我還沒有完成。Silverlight自定義控件中的依賴項屬性的默認值
當我的控件第一次被添加到Blend中的面板時,它顯示爲我期望基於該模板,當我修改我公開的依賴項屬性時,這些工作也很好。我現在遇到的問題是,當通過Blend進行更改,然後使用選項框「重置」該值時,它會重置「雜項」窗格下的屬性,但除非在設計視圖中實際更改控件本身,除非我再次構建項目。
這是我目前擁有的代碼:我已經試過與屬性修修補補改變回調但都沒有成功得到它的工作
public enum SolidGlossTypes
{
Normal,
Header,
Footer,
None
}
public SolidGlossTypes SolidGlossType
{
get
{
return (SolidGlossTypes)GetValue(SolidGlossTypeProperty);
}
set
{
SetValue(SolidGlossTypeProperty, value);
switch (value)
{
case SolidGlossTypes.Header:
SolidGloss_Upper.Visibility = Visibility.Visible;
SolidGloss_Lower.Visibility = Visibility.Collapsed;
break;
case SolidGlossTypes.Footer:
SolidGloss_Upper.Visibility = Visibility.Collapsed;
SolidGloss_Lower.Visibility = Visibility.Visible;
break;
case SolidGlossTypes.None:
SolidGloss_Upper.Visibility = Visibility.Collapsed;
SolidGloss_Lower.Visibility = Visibility.Collapsed;
break;
default:
SolidGloss_Upper.Visibility = Visibility.Visible;
SolidGloss_Lower.Visibility = Visibility.Visible;
break;
}
}
}
public static readonly DependencyProperty SolidGlossTypeProperty = DependencyProperty.Register("SolidGlossType", typeof(SolidGlossTypes), typeof(SolidGloss), new PropertyMetadata(SolidGlossTypes.Normal));
。
另外,是否可以將依賴項屬性的默認值設置爲generic.xaml中的樣式,然後綁定到模板中的樣式?
由於提前,
Ë
+1,你也許想考慮讓enum成爲第一類對象,並把相關的值放在那裏,而不是在你的set方法中 – 2010-10-22 16:40:23
好吧,我失去了如何使用屬性回調方法不知道要在switch語句中放置什麼,而不是'value' – Eric 2010-10-22 16:52:19
Alex:我不明白你的意思 – Eric 2010-10-22 16:53:04