これが私の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();
}
}
}
私が抱えている問題は、Helloworld_ringボタンのクリックでsetEvent関数を実行すると、すべてが正常に機能することです。これらのボタンを削除してHelloworld関数でHoldイベントを使用しようとすると、エラーが発生します
An unhandled exception of type 'System.NullReferenceException' occurred in MyApp.dll
私が理解していることは、まったく説明のつかないことです。私が気付いている問題は、デバッグ中にsetSrcButton変数がe.OriginalSourceの値を取得していないことですが、これはHelloworldでHoldイベントを使用した場合にのみ発生します。Helloworld_ringでClickイベントを使用すると、すべてが正常に機能します。
すべての助けに感謝します。ありがとうございました :)