4

我在 xaml 中创建了一个自定义依赖对象,我想将它的整个实例绑定到另一个自定义依赖对象的属性。控件内部发生的所有事情。例如像这样的东西

class row : dependencyobject
{
   // this is a dp property
   public static readonly dependencyproperty widthproperty = dependencyproperty.register...
}

class cell : dependencyobject
{

   public static readonly dependencyproperty dataproperty = dependencyproperty.register....
}

class customGridView:Control
{
  List<Row>Rows { get;set;}
  List<Cell> Cells { get;set;}
}

现在我想将一个行的实例绑定到 cell.data 属性,也是这样的:

<customGridView>
 <row x:name:row1 width=200/> (this is a class that derives for dependencyobject)
 <row .../>
 <cell data={Binding ElementName=row1}/> (this is another class that derives from dependencyobj and tries to bind to entire instance of row class)
 <cell ..../>
 <cell ..../>
</customGridView/>

有什么帮助吗?

根据需要,这是 cell.data 的 dp 属性:

 public Row Data
    {
        get { return (Row)GetValue(DataProperty); }
        set { SetValue(DataProperty, value); }
    }

    // Using a DependencyProperty as the backing store for ColumnName.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty DataProperty=
        DependencyProperty.Register("Data", typeof(Row), typeof(Cell), new PropertyMetadata(null));
4

2 回答 2

1

现在我得到了你的问题这样做

  <cell.data>
    <x:Reference Name="row1"/>
  </cell.data>
于 2012-11-19T08:38:57.740 回答
0

例如,看看如何实现GridRowDefinition

  • 您的RowCell类必须从继承自并定义属性的FrameworkContentElement继承,从而允许您的实例在适当的INameScope中注册,以便以后找到。DependencyObjectName
  • 您需要将这些实例链接到逻辑树,因为绑定Cell依赖于它来查找“row1”。有关进一步的解释,请参阅这篇文章
于 2012-11-20T08:58:49.457 回答