Silverlight 4.0 自定义控件Xaml元素

Silverlight 4.0 自定义控件Xaml元素,silverlight-4.0,Silverlight 4.0,我有 控制: ControlX:IControlX和ControlY:IControlY ControlZ的列表属性为ControlX 接口: IControlX和IControlY:IControlX 我得到的标签是: <ControlZ> <ControlY> <ControlX></ControlX> <ControlX></ControlX>

我有

控制:

ControlX:IControlX和ControlY:IControlY

ControlZ的列表属性为ControlX

接口:

IControlX和IControlY:IControlX

我得到的标签是:

<ControlZ>

        <ControlY>

            <ControlX></ControlX>

             <ControlX></ControlX>

        </ControlY>

</ControlZ>

在这里,我可以访问列表中的控件Y,但无法访问控件X

但如果我将标记顺序更改为:

<ControlZ>

        <ControlY> </ControlY>

        <ControlX></ControlX>

         <ControlX></ControlX>       

</ControlZ>

我可以得到列表中所有的对象

但这是不符合逻辑的,所以我需要保持标记顺序

你能推荐我吗。如何访问内部标签


谢谢你

你不能那样做。除非在XAML中初始化属性,否则XAML不允许访问属性的属性

<Control:MyControl>

  <Control:MyControl.Property1>

       <!-- Assuming that Property1 is of type MyOtherControl -->
       <Control:MyOtherControl Property="somevalue" />

 </Control:MyControl.Property1>

</Control:MyControl>

要设置
Property1
属性的值,必须先实例化它。假设
Property1Type
类型为
Property1Type
的操作系统存在于同一名称空间中,并且内部属性(
property
)的类型为
InnerPropertyType
,也存在于同一名称空间中。您的代码应该类似于:

<Control:MyControl>
    <Control:MyControl.Property1>
        <Control:Property1Type>
            <Control:Property1Type.Property>
                <Control:InnerPropertyType />
            </Control:Property1Type.Property>
        </Control:Property1Type>
    </Control:MyControl.Property1>
</Control:MyControl>

这类似于,例如:

<ListBox>
  <ListBox.BorderBrush>
    <ImageBrush>
      <ImageBrush.Transform>
          <ScaleTransform ScaleX="5"/>
      </ImageBrush.Transform>
    </ImageBrush>
  </ListBox.BorderBrush>
</ListBox>

这应该可以解决一些问题,如果其他问题仍然存在,请更新您的问题;)

希望这有帮助:)