我一直在使用WPF,並遇到了與DataTemplates相關的問題。 我有一個叫做DetailPage.xaml的視圖,該視圖使用了一個名爲Detail.xaml的DataTemplate。我向這個DataTemplate添加了一個文本框,我想處理TextChanged事件。所以我做了這樣的事情:DataTemplate中WPF控件的事件處理程序
<DataTemplate x:Name="DetailContent">
<Grid Margin="5" DataContext="{Binding Items[0]}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition MaxHeight="80"/>
</Grid.RowDefinitions>
<StackPanel Width="432">
<TextBox Name="NumeroParadaTB" Text="{Binding NumeroParada}" MaxLength="5" TextChanged="NumeroParadaTB_TextChanged" />
</StackPanel>
</Grid>
</DataTemplate>
然後創建和事件處理程序DetailPage.xaml.cs,如下所示:
protected async void NumeroParadaTB_TextChanged(object sender, TextChangedEventArgs e)
{
string nroParada = ((TextBox)sender).Text;
if(!string.IsNullOrEmpty(nroParada) && nroParada.IsDigitsOnly() && nroParada.Length == 5)
{
}
}
但是運行的時候,並拋出錯誤,指出事件處理程序不存在。我想我以錯誤的方式使用事件處理程序。
謝謝!
如果您使用數據綁定,爲什麼要處理'TextChanged'?爲什麼不在數據上下文中處理'NumeroParada'屬性更改? – Dennis 2014-12-04 13:23:19
對不起丹尼斯,我是WPF的noob。你有一個可以幫助我實現這個目標的例子嗎? – 2014-12-04 13:25:18
是否要驗證輸入的文本值並顯示驗證結果? – Dennis 2014-12-04 13:41:50