在绑定时知道一个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 :(得分:1)
要在任何FrameworkElement
中保留其他值,您可以使用Tag
属性。在创建TextBlock
textblock.SetValue(FrameworkElement.TagProperty, 4)
如果您可以阅读
(int)tb.Tag