2011-08-10 115 views
0

先生們,即使RibbonSplitButton click事件

我綁定的集合RibbonSplitButton(基本上,呈現出3個值:紅,綠,藍),一切工作正常,除了這個問題我要弄清楚哪種顏色(項目)已選擇:

這裏是我的代碼:

<r:RibbonSplitButton Name="TagEm" 
    LargeImageSource="Images\pencil_32.png" 
    Label="Tag" 
    ItemsSource="{Binding Path=TagCollection}" 
    Click="TagEm_Click"> 
    <r:RibbonSplitButton.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Descr}" /> 
     </DataTemplate> 
    </r:RibbonSplitButton.ItemTemplate> 
</r:RibbonSplitButton> 

後面的代碼:

private void TagEm_Click(object sender, RoutedEventArgs e) 
{ 
} 

類似於(Tag)TagEm.Items.CurrentItem;

請問有人給我一個提示嗎?

非常感謝提前!

N.

回答

0

請勿使用RibbonSplitButton Click事件。而是使用TextBox MouseLeftButtonUp事件。

XAML:

<r:RibbonSplitButton 
    Name="TagEm" 
    LargeImageSource="Images\pencil_32.png"  
    Label="Tag"  
    ItemsSource="{Binding Path=TagCollection}"> 
    <r:RibbonSplitButton.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" MouseLeftButtonUp="TextBlock_MouseLeftButtonUp" /> 
     </DataTemplate> 
    </r:RibbonSplitButton.ItemTemplate> 
</r:RibbonSplitButton> 

事件處理程序:

private void TextBlock_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
{ 
    Tag clickedTag = (sender as TextBlock).DataContext as Tag; 
} 
+0

當然,這僅適用於鼠標輸入。如果您想支持鍵盤或其他輸入,請使用Button替換TextBlock(並處理Button.Click)。您可以使用控制模板使Button看起來像TextBlock http://msdn.microsoft.com/en-us/library/ee230084.aspx –

+0

非常感謝您的幫助! :-) – Nearshore