Silverlight 通过属性创建易于使用的UserControl

Silverlight 通过属性创建易于使用的UserControl,silverlight,user-controls,dependency-properties,Silverlight,User Controls,Dependency Properties,在我的Silverlight 4应用程序中,我尝试创建一个简单的UserControl,它将被我的应用程序使用。为了简单起见,它应该有一个“标题”和一个占位符,我想在这里放置任何类型的控件 <User Control ...> <Grid x:Name="LayoutRoot"> <TextBlock x:Name="TextBlockHeader" Text="{Binding Title}" /> <ContentPresente

在我的Silverlight 4应用程序中,我尝试创建一个简单的UserControl,它将被我的应用程序使用。为了简单起见,它应该有一个“标题”和一个占位符,我想在这里放置任何类型的控件

<User Control ...>
  <Grid x:Name="LayoutRoot">
    <TextBlock x:Name="TextBlockHeader" Text="{Binding Title}" />
    <ContentPresenter x:Name="ContentPresenterObject" />
  </Grid>
</UserControl>
这样,当我在应用程序中使用控件时,可以设置Title属性

<local:MyAccordion Title="Test"/>

但是,textblock Text=“{binding Title}”处的绑定似乎不会使文本“Test”显示为textblocks文本

我的问题是:如何使属性标题显示为文本框文本,以及如何为-任何类型的用户控件containable-contencontrol执行此操作

提前感谢,

Frank

可能未设置控件或页面的数据上下文。-首先,您应该阅读更多关于绑定的内容(“http://www.silverlight.net/learn/data-networking/binding/data-binding-to-controls-(silverlight快速入门)”。如果您正在从事实际项目,并将设计一个体系结构,那么您应该阅读有关MVVM模式的内容。

答案是ElementPropertyBinding。我需要在绑定中引用用户控件,或者在构造函数中添加绑定

在XAML中创建绑定:

<User Control ... x:Name="userControl">
  ...
  <TextBlock x:Name="TextBlockHeader" Text="{Binding Title, ElementName=userControl}" />
</UserControl>

我仍然需要了解如何添加子控件,但这是另一个问题。

这是了解Silverlight Technology的基本步骤。这说明了如何根据代码中的给定数据进行绑定。但是我想将TextBlock.Text属性与我的自定义属性TitleProperty绑定
<User Control ... x:Name="userControl">
  ...
  <TextBlock x:Name="TextBlockHeader" Text="{Binding Title, ElementName=userControl}" />
</UserControl>
public MyUserControl()
{
  // Required to initialize variables
  InitializeComponent();

  TextBlockHeader.SetBinding(TextBlock.TextProperty, new System.Windows.Data.Binding() { Source = this, Path = new PropertyPath("Title") });
}