Mac
Mac

Reputation: 157

Call a contact number for wp7

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.

enter image description here

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

Answers (1)

driis
driis

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

Related Questions