假设我绑定了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);
}
然而,孩子却没有让我访问我想要的物品。他们是一个很好的解决方案吗?我是以错误的方式来做这件事的吗?我这样做的原因是因为他们可以动态添加按钮,删除,一些按钮需要移动等等。
答案 0 :(得分:0)
找到了一种方法。
var presenter =(ContentPresenter)child; var dataContext = presenter.DataContext as MyClass;