2010-10-26 155 views
0

我想要一个名为分段面板的用户控件,其中包含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”,但是当我编译它时,按钮的内容不会改变。

有人可以帮我吗?

+1

我不明白这一点。你正在给StackPanel添加一个附加属性,但是你的类型是SegmentedControl?你的意思是在typeof(SegmentedControl)上声明你的依赖属性吗? – 2010-10-26 17:14:40

回答

0

按照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" />