我得到了以下矩形如何在mvvm的矩形命令上使用多重綁定?
<Rectangle
Width="{Binding Width}"
Height="{Binding Length}"
Tag="{Binding Id}"
Name="rectangleDrawnMachine">
<i:Interaction.Triggers>
<i:EventTrigger
EventName="MouseDown">
<cmd:EventToCommand
Command="{Binding Main.UpdateSelectedMachine, Mode=OneWay, Source={StaticResource Locator}}"
PassEventArgsToCommand="True"
CommandParameter="{Binding ElementName=rectangleDrawnMachine}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Rectangle>
該矩形被綁定到其在一個以上的ItemsControl聲明的模型。該文件結構是如下所示:
<Grid>
<ItemsControl ItemsSource="{Binding AllMachines}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Name="canvasDrawnMachines" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Rectangle Name="rectangleDrawnMachine"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
現在我UpdateSelectedMachine -command需要矩形的至少三個屬性:
- 位置X
- 位置Y
- ID /標籤
使用CommandParameter o如果矩形本身,我的命令會得到很多關於矩形的信息(比如需要的標籤)。但它沒有獲得關於畫布的(X-& Y-)位置的必要信息。
所以我的問題是:如何在我的矩形命令上使用多重綁定?以及如何轉移畫布的位置?
謝謝您的回答。多重綁定方式工作得很好。問題是畫布的矩形位置不能傳遞正確的值。它說'沒有定義'。也許是因爲我的數據模板有多個矩形? – Chpo7234
這不是多個矩形的問題。你可以儘可能多地擁有它。我已經更新了答案中的綁定。 – Parag
感謝您的更新。問題例如Canvas.Top返回我{DependencyProperty.UnsetValue}。代碼' '沒有問題 –
Chpo7234