WP7自定义用户控件属性
问题描述:
我想要一个名为分段面板的用户控件,其中包含3个按钮,我想从XAML屏幕修改它们的名称(标题1/2/3)。WP7自定义用户控件属性
XAML的MainPage:
<local:SegmentedControl HorizontalAlignment="Left" Margin="43,62,0,0" x:Name="segmentedControl1" VerticalAlignment="Top" Title1="ENTER BUTTON NAME HERE" Title2="blah.." Title3="Last Button" Loaded="segmentedControl1_Loaded" />
SegmentedControl XAML.CS:
public static readonly DependencyProperty Title1Property
= DependencyProperty.RegisterAttached("Title1", typeof(String), typeof(StackPanel),
new PropertyMetadata(""));
public static void SetTitle1(UIElement element, String value) {
element.SetValue(Title1Property, value);
}
public static string GetTitle1(UIElement element) {
return (string)element.GetValue(Title1Property);
}
public string Title1 {
get { return GetValue(Title1Property).ToString(); }
set { SetValue(Title1Property, value); }
}
在Expression Blend我打开了分段面板,选择按钮1,在内容我试着艇员选拔既数据上下文和元素值,然后向下滚动选择“Title1”,但是当我编译它时,按钮的内容不会改变。
有人可以帮我吗?
答
按照John Gardner的建议,您必须在依赖项属性实现中编写... typeof(SegmentedControl),然后必须将属性绑定到合适的UI元素!
例如:
<local:SegmentedControl HorizontalAlignment="Left" Margin="43,62,0,0" x:Name="segmentedControl1" VerticalAlignment="Top" Title1="{Binding Title1}" ... Loaded="segmentedControl1_Loaded" />
我不明白这一点。你正在给StackPanel添加一个附加属性,但是你的类型是SegmentedControl?你的意思是在typeof(SegmentedControl)上声明你的依赖属性吗? – 2010-10-26 17:14:40