2014-01-17 47 views
0

有一個Int32值sDocBaseResultDocsFieldsIndex在結合
我需要的是值傳遞給事件處理程序(cc_CopyToClip)時已知
如何傳遞該值的價值呢?
我真的不使用ConverterParameter - 只是希望能找到一種方法來訪問,在事件處理程序傳遞在綁定創建時已知到處理器

Binding gvBinding = new Binding(); 
gvBinding.ConverterParameter = sDocBaseResultDocsFieldsIndex; 
FrameworkElementFactory textblock = new FrameworkElementFactory(typeof(TextBlock)); 
textblock.SetValue(TextBlock.TextProperty, gvBinding); 
textblock.AddHandler(TextBlock.MouseRightButtonDownEvent, new MouseButtonEventHandler(cc_CopyToClip)); 

背景: 請參閱硬編碼4
這是值(sDocBaseResultDocsFieldsIndex)我需要通過

private void cc_CopyToClip(object sender, MouseButtonEventArgs e) 
{ 
    if (sender is TextBlock) 
    { 
     TextBlock tb = (TextBlock)sender; 
     GabeLib.sDocBase sdB = (GabeLib.sDocBase)tb.DataContext; 
     if (sdB != null && sdB.DocFields != null && sdB.DocFields[4] != null) 
     { 
      MessageBox.Show(sdB.DocFields[4].DispValue); 
     } 
+0

哪裏是相對於''TextBlock'設置cc_CopyToClip'它? – Sheridan

+0

@Sheridan TextBlock是System.Windows.Controls.TextBlock。 cc_CopyToClip是一個事件處理程序。我不明白你的問題。 – Paparazzi

+0

@Blam如果它是固定值,你不能使用'FrameworkElement.TagProperty'來存儲你需要的東西嗎? – dkozl

回答

1

爲了讓更多的價值在任何FrameworkElement可以使用Tag屬性。當你創建TextBlock

textblock.SetValue(FrameworkElement.TagProperty, 4) 

,並在事件中,你可以閱讀

(int)tb.Tag 
相關問題