Reputation: 157
In my contact app(for wp7), i am not able to correct this error at all. I have also added an image below. When i Tap on the contact number, am not able to Call that number. I am getting the following error- NullReferenceException. I have also used the PhoneCallTask.
In xaml-
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock Text="{Binding Path=DisplayName, Mode=OneWay}" Foreground="{StaticResource PhoneAccentBrush}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" />
<Border BorderThickness="2" HorizontalAlignment="Left" BorderBrush="{StaticResource PhoneAccentBrush}" >
<Image Name="Picture" Height="175" Width="175" HorizontalAlignment="Left" />
</Border>
<TextBlock Height="50" Name="textBlock1" Text="call mobile" FontSize="40" Margin="0,30,0,0"/>
<ListBox x:Name="ListBox" ItemsSource="{Binding Path=PhoneNumbers}" FontSize="64" Height="100" Margin="0,0,0,0" SelectionChanged="ListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!--TextBlock Grid.Column="0" Text="{Binding Path=Kind, Mode=OneWay}" />
<TextBlock Grid.Column="1" Text=": " /-->
<TextBlock Grid.Column="2" Text="{Binding Path=PhoneNumber, Mode=OneWay}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
In xaml.cs-
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
//Set the data context for this page to the selected contact
this.DataContext = App.con;
try
{
//Try to get a picture of the contact
BitmapImage img = new BitmapImage();
img.SetSource(App.con.GetPicture());
Picture.Source = img;
}
catch (Exception)
{
//can't get a picture of the contact
}
}
private void ListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
SampleData data = (sender as ListBox).SelectedItem as SampleData;
ListBoxItem selectedItem = this.ListBox.ItemContainerGenerator.ContainerFromItem(data) as ListBoxItem;
PhoneCallTask PhoneTask = new PhoneCallTask();
PhoneTask.PhoneNumber = data.PhoneNumbers;
PhoneTask.Show();
}
public class SampleData
{
public string PhoneNumbers { get; set; }
}
Can anybody help me with this? Thanks in advance for your hard work!
Upvotes: 0
Views: 221
Reputation: 164291
I am pretty sure the SelectedItem
property is not of type SampleData
, so the cast will fail and return null:
SampleData data = (sender as ListBox).SelectedItem as SampleData;
Therefore, this line throws a null reference exception, because data
is null:
PhoneTask.PhoneNumber = data.PhoneNumbers;
Using the debugger, it should be easy to confirm this conclusion - if you are not in the habit of using the debugger to solve problems, i sincerely urge you to start using it ;-)
Upvotes: 1