2015-10-16 16 views
1

我迫切需要幫助。如何通過點擊動作實現項目控件的對象選擇

我的應用程序已經在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的實例裏面,但我要如何去確定哪些兩個項目控件中的模板已被選中,我如何應用觸發器以顯示它們已被選中?

請幫忙! :?'(

+0

有這必須是一個ItemsControl而不是像ListBox這樣的Selector控件之一的原因嗎? – mnistic

+0

它與uielement的樣式以及由於界面原本是隻讀的,但規範擴展了:(。 此外,使用選擇器控件仍然不會將選擇應用於其他項目控件 – Vocalonation

+0

使用選擇器控件,您可以從視圖模型的兩個方向綁定選擇的項目控制,這會得到你想要的(應用選擇)。如果ListBox不在問題中,您可能最終不得不自己實現所選項目,否則您可能還需要它。不應該太難,依賴屬性和/或路由事件。 – mnistic

回答

0

如何定義輸入您的DataTemplate的ItemTemplate結合,也許發送您的模板的名稱作爲參數,那麼你可以在你的模板的名稱轉行做不同的處理

相關問題