hrangelet 发表于 2016-8-16 13:51:33

C1FlexGrid中事件处理

http://gcdn.gcpowertools.com.cn/showtopic-15688.html中通过

[*]    private const string strXaml =
[*]    "<DataTemplate " +
[*]    "xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" " +
[*]    "xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"> " +
[*]      "<TextBlock Text=\"{Binding FieldName}\"></TextBlock> " +
[*]    "</DataTemplate>";
[*]绑定了模板列,请问这里面怎么绑定事件。就是Texblock里面的事件方法。我把Texblock控件换成了其他控件
[*]
[*]      private const string strXaml =
[*]"<DataTemplate " +
[*]"xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" " +
[*]"xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" " +
[*]"xmlns:sdk=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk\">" +
[*]"<sdk:AutoCompleteBox MinimumPrefixLength=\"0\" Text=\"{Binding Path=NumOrder,Mode=TwoWay}\"FilterMode=\"None\"/> " +
[*]"</DataTemplate>";
[*]但AutoCompleteBox这里面事件绑定错误。
[*]麻烦看看是什么问题,谢谢!



Alice 发表于 2016-8-16 14:32:44

我这里无法重现你的问题。
你可以测试将AutoCompleteBox这段代码尝试在XAML中写,看会不会有错误。
XAML文件里的写法参考你发的链接的4楼。

如果按照4楼的写法也是错误的,那就是你本身程序的绑定写的有问题。
反之,xaml文件里是好的,请将你出问题的Demo发给我,我帮你看看。

hrangelet 发表于 2016-8-16 15:20:29

Alice 发表于 2016-8-16 14:32
我这里无法重现你的问题。
你可以测试将AutoCompleteBox这段代码尝试在XAML中写,看会不会有错误。
XAML ...

AutoCompleteBox里面添加了事件就不行了。我的示例是好的。
如:
      private const string strXaml =
"<DataTemplate " +
"xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" " +
"xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" " +
"xmlns:sdk=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk\">" +
"<sdk:AutoCompleteBox MinimumPrefixLength=\"0\" Text=\"{Binding Path=NumOrder,Mode=TwoWay}\"GotFocus=\"AutoCompleteBox_GotFocus\"FilterMode=\"None\"/> " +
"</DataTemplate>";

然后定义事件:
      void autoCompleteBox_GotFocus(object sender, RoutedEventArgs e)
      {
            AutoCompleteBox abx = sender as AutoCompleteBox;
            abx.Text = "aaaa";
      }

当获取焦点时,页面直接空白,也抛不出异常!麻烦了。

hrangelet 发表于 2016-8-16 15:22:10

Alice 发表于 2016-8-16 14:32
我这里无法重现你的问题。
你可以测试将AutoCompleteBox这段代码尝试在XAML中写,看会不会有错误。
XAML ...

请问我如何提供demo给您?
联系方式?
主要是事件处理错误:
GotFocus=\"AutoCompleteBox_GotFocus\"
就是XAML中绑定了事件就错了!

Alice 发表于 2016-8-16 17:31:47

hrangelet 发表于 2016-8-16 15:22
请问我如何提供demo给您?
联系方式?
主要是事件处理错误:

WPF平台不支持3楼这样添加事件,原因在你的另一个帖子已经解释过了:
http://gcdn.gcpowertools.com.cn/showtopic-24220-1-1.html

这不是产品的问题,这是WPF平台的要求。
我这里没有WPF相关处理的示例,你可以到网上查找WPF的冒泡事件捕获的方法。基本思路就是对于WPF的冒泡事件,去获取父的事件(你把DataTemplate放在哪里,哪个就是父容器),然后处理父的事件。(这个在另一个帖子也已经解释过)


hrangelet 发表于 2016-8-16 17:36:56

Alice 发表于 2016-8-16 17:31
WPF平台不支持3楼这样添加事件,原因在你的另一个帖子已经解释过了:
http://gcdn.gcpowertools.com.cn/ ...

冒泡事件没有支持的事件,比如LostMouseCapture这个在父控件里面没有这个事件,所以无法使用。

Alice 发表于 2016-8-17 09:34:41

hrangelet 发表于 2016-8-16 17:36
冒泡事件没有支持的事件,比如LostMouseCapture这个在父控件里面没有这个事件,所以无法使用。

如果是这种事件,那就无法支持。

hrangelet 发表于 2016-8-17 09:50:34

Alice 发表于 2016-8-17 09:34
如果是这种事件,那就无法支持。

是否有其他建议可以提供?

Alice 发表于 2016-8-17 12:06:32

hrangelet 发表于 2016-8-17 09:50
是否有其他建议可以提供?

对于WPF下的这种写法,我也没好的建议。
你可以在网上找找相关的资料(如何动态的添加事件)。
页: [1]
查看完整版本: C1FlexGrid中事件处理