datlightmplate in silverlight c#.net

时间:2011-09-27 09:09:46

标签: c# silverlight windows-phone-7

我正在为列表框中的项目创建一个datatemplate并使用它来加载它 (DataTemplate)XamlReader.Load(template),其中模板为

string template = String.Concat(@
"<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'                                        xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
<Border BorderBrush='#334873' BorderThickness='1,1,1,1' Width='450'>
<TextBox Height='72' HorizontalAlignment='Left' Margin='10,10,0,0'  TextChanged="OnTextChanged" VerticalAlignment="Top" Width="460" />"
...................
"</Border></DataTemplate>");

由于注册了“OnTextChanged”事件,我收到了错误。

我想在模板代码中注册一个事件。

怎么做?

1 个答案:

答案 0 :(得分:1)

为了给你答案:当你使用模板时,以这种方式映射事件相当困难,因为模板不会知道它放在哪里。所以OnTextChanged在这种情况下并不意味着什么。

您应该考虑绑定。当您已经使用DataTemplate时,通常的故事是将TextBox-Text属性绑定到某个模型属性

<TextBox Height='72' HorizontalAlignment='Left' Margin='10,10,0,0'  Text="{Binding MyTextProperty}" VerticalAlignment="Top" Width="460" />"

当然这里的DataContext应该有一个属性MyTextProperty,但没有你的代码(你使用模板的地方)我不能给出进一步的细节。