如何在布局孩子时阅读ItemSsource的一些属性?

时间:2010-04-06 15:02:21

标签: silverlight xaml

假设我绑定了ItemSource并且我正在获取数据。现在我想要的是这个。 ItemSource将包含告诉每个按钮应该在哪里的数据。例如:第一个按钮可以在左边:200,顶部:0,第二个按钮可以是左:50顶部:20。

</ItemsControl.Resources>
            <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Controls:MatrixCanvas />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <item:CustomButton
                    Height="{Binding btnSize}" 
                    Width="{Binding btnSize}" 
                    Style="{Binding bbColor,Converter={StaticResource ButtonStyleConverter}}"
                    />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>



protected override Size ArrangeOverride(Size finalSize)
        {
            foreach (var child in Children)
            {
                //The child
            }
            return base.ArrangeOverride(finalSize);
        }
然而,孩子却没有让我访问我想要的物品。他们是一个很好的解决方案吗?我是以错误的方式来做这件事的吗?我这样做的原因是因为他们可以动态添加按钮,删除,一些按钮需要移动等等。

1 个答案:

答案 0 :(得分:0)

找到了一种方法。

var presenter =(ContentPresenter)child;             var dataContext = presenter.DataContext as MyClass;