我正在尝试使用Visual Studio 2010为Windows Phone 7开发一个数据透视应用程序。我使用以下代码从日历中获取数据。
void Appointments_SearchCompleted(object sender, AppointmentsSearchEventArgs e)
{
try
{
AppointmentResultsDataLINQ.DataContext =
from Appointment appt in e.Results
where appt.IsAllDayEvent == false
select appt;
}
catch (System.Exception)
{
//No results
}
}
当我尝试连接到下一个按钮时出现问题。
private void button2_Click(object sender, RoutedEventArgs e)
{
if (AppointmentResultsDataLINQ.DataContext.ToString() == "Meeting")
{
mediaElement1.Source = new Uri("http://www.opendrive.com/files/NV8zNTMwNDYwX2hxRXZR/Crystallize.mp3", UriKind.Absolute);
}
else
{
mediaElement1.Source = new Uri("https://www.opendrive.com/files/NV8zMjAxODY0X0VBNDJY/Hetken%20tie%20on%20kevyt%20(piano%20cover)%20-%20YouTube.mp3", UriKind.Absolute);
}
mediaElement1.Play();
如何将数据转换为字符串,以便正确播放两首歌曲?因为现在,即使我在日历上将事件设置为“会议”,它仍然会播放第二首歌曲。
答案 0 :(得分:0)
您已使用Appointment对象绑定了ListBox,因此需要将DataContext进行类型转换。如果将事件设置为“会议”,则将事件设置为“会议”,则此代码应该可以正常工作。
if ((((Appointment)(AppointmentResultsDataLINQ.DataContext)).Subject).Equals("Meeting")))
{
mediaElement1.Source = new Uri("http://www.opendrive.com/files/NV8zNTMwNDYwX2hxRXZR/Crystallize.mp3", UriKind.Absolute);
}
当您执行AppointmentResultsDataLINQ.DataContext.ToString()时,您将DataContext对象的地址值转换为字符串,而不是获取所需的字符串值。 “==”也不适用于字符串比较。