Вот мой XAML:Нажмите против Удержание Удержание вызывает синтаксическую ошибку
<Button x:Name = "Helloworld"
Content = "Hello world"
Grid.Column = "0"
Grid.Row = "0"
Click="playEvent"
Hold="setEvent"
Tag="/Sounds/helloworld.mp3"
/>
<Button x:Name = "Helloworld_ring"
Grid.Column = "1"
Grid.Row = "0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Click="setEvent"
Tag="/Sounds/helloworld.mp3">
<Image Source="/Images/note.png" Stretch="Fill" Height="30" Width="30" />
</Button>
И код позади, как так:
namespace MyApp
{
public partial class MainPage : PhoneApplicationPage
{
Button playSrcButton;
Button setSrcButton;
SaveRingtoneTask saveRingtoneChooser;
public MainPage()
{
InitializeComponent();
saveRingtoneChooser = new SaveRingtoneTask();
saveRingtoneChooser.Completed += new EventHandler<TaskEventArgs>(saveRingtoneChooser_Completed);
}
private void playEvent(object sender, RoutedEventArgs e)
{
playSrcButton = e.OriginalSource as Button;
playFile(playSrcButton.Tag.ToString(), playSrcButton.Content.ToString());
}
private void setEvent(object sender, RoutedEventArgs e)
{
setSrcButton = e.OriginalSource as Button;
saveRingtoneChooser.Source = new Uri(setSrcButton.Tag.ToString());
saveRingtoneChooser.DisplayName = setSrcButton.Content.ToString();
saveRingtoneChooser.Show();
}
}
}
Проблема, которую я имею, что если я ставлю функцию SetEvent к происходят по щелчку кнопки Helloworld_ring, тогда все работает нормально. Если я пытаюсь устранить эти кнопки и использовать событие удержания на функцию HelloWorld я получаю ошибку
An unhandled exception of type 'System.NullReferenceException' occurred in MyApp.dll
Что я понимаю, довольно невзрачный. Проблема, которую я замечаю, заключается в том, что во время отладки setSrcButton переменная не получает значение e.OriginalSource, но это только происходит, когда я использую событие Hold на Helloworld. Когда я использую событие Click на Helloworld_ring, все работает отлично.
Вся помощь приветствуется. Спасибо :)
Хотя я хочу, чтобы кто-то объяснил, почему это так, я очень ценю ответ. Он работает сейчас. Спасибо! – Tibblez