我迫切需要幫助。如何通過點擊動作實現項目控件的對象選擇
我的應用程序已經在WPF中創建,並且在屏幕上是兩個itemcontrols,它們使用與itemssource相同的可觀察集合。一個在網格中放置元素,另一個在橢圓上根據列表中的x-y變量放置元素。 我想點擊在任一橢圓形或電網產生的DataTemplates之一,選擇它,並同時擁有相應元素髮光或做別的事情來表示:
不過,我想實現以下時很卡選擇。 (即如果我點擊網格中的模板,網格和橢圓都會做一些事情來表明模板已被選中。)
現在,我已經能夠使用這種類型保存點擊的項目綁定在數據模板中。 ItemsSourceViewModel中包含所討論的itemsource。
<StackPanel.InputBindings>
<MouseBinding Command="{Binding SelectImage}" CommandParameter="{Binding Path=.}" MouseAction="LeftClick"></MouseBinding>
</StackPanel.InputBindings>
然後SelectImage的ICommand綁定到鼠標點擊實現爲這樣:
private ItemsSourceViewModel foo;
public SelectImage(ItemsSourceViewModel incoming)
{
this.foo = incoming;
}
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
var obj = parameter as ImageTemplate;
foo.SelectedImage = obj;
}
所以現在我選擇的對象是救了我的ItemsSourceViewModel的實例裏面,但我要如何去確定哪些兩個項目控件中的模板已被選中,我如何應用觸發器以顯示它們已被選中?
請幫忙! :?'(
有這必須是一個ItemsControl而不是像ListBox這樣的Selector控件之一的原因嗎? – mnistic
它與uielement的樣式以及由於界面原本是隻讀的,但規範擴展了:(。 此外,使用選擇器控件仍然不會將選擇應用於其他項目控件 – Vocalonation
使用選擇器控件,您可以從視圖模型的兩個方向綁定選擇的項目控制,這會得到你想要的(應用選擇)。如果ListBox不在問題中,您可能最終不得不自己實現所選項目,否則您可能還需要它。不應該太難,依賴屬性和/或路由事件。 – mnistic