【发布时间】:2011-09-11 22:57:32
【问题描述】:
我正在创建一个启用拖放功能的应用程序,并且我一直在尝试使用 ItemsControl 进行绑定,而不是默认添加我的控件。 Displayer 是一个 UserControl,代表我正在使用的对象。
ZExtender 具有 ZIndex、Top、Left 等属性。下面的实现适用于顶部,左侧,宽度正确,但 ZIndex 更改不生效。我想在代码中绑定或更改 ZIndex 以在 UI 中自动更改它。如果不向我页面的 codeBehind 发送消息,这是否可行?
<Border BorderBrush="Black" BorderThickness="2" Margin="35" HorizontalAlignment="Center" VerticalAlignment="Center">
<Canvas AutomationProperties.AutomationId="designerCanvas" Width="{Binding Root.Width}" Height="{Binding Root.Height}">
<Canvas.Background>
<ImageBrush ImageSource="/SilverlightImages/canvasBackground.png" Stretch="None" />
</Canvas.Background>
<ItemsControl ItemsSource="{Binding Containers}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<canvas> <!-- canvas is needed for the positioning to work -->
<controls:Displayer DataContext="{Binding ZExtender}"
Canvas.Top="{Binding Top}"
Canvas.Left="{Binding Left}"
Canvas.ZIndex="{Binding ZIndex}"
Width="{Binding WidthInPixels}"
Height="{Binding HeightInPixels}"
/>
</canvas>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Canvas>
</Border>
【问题讨论】:
标签: silverlight silverlight-4.0 mvvm itemscontrol