2013-12-18 77 views
1

我已經通過MSDN文章了「訪問Windows Phone的聯繫人和日曆數據」訪問聯繫人數據8

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh286414(v=vs.105).aspx#BKMK_CreatingtheApplicationProject

<TextBlock Text="phone numbers" Margin="12,12,0,0"/> 
     <ListBox ItemsSource="{Binding Path=PhoneNumbers}" Height="60" Margin="36,0,0,0"> 
      <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 x:Name="pno" Grid.Column="2" Text="{Binding Path=PhoneNumber, Mode=OneWay}" /> 
        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

在上面的XAML電話號碼是動態綁定到TextBlock NAME =「PNO」(命名自己不要在MSDN代碼)

我想在一個變量的電話號碼說Phone_no。如何????

回答

0

不綁定到默認ContactPhoneNumber(不要使用IEnumerable的呼籲PHONENUMBERS綁定)。

創建自己的類來保存電話號碼數據

public class MyContactPhoneNumber 
{ 
    public PhoneNumber Phone_no {get; set;} 
    //other properties you want 
} 

並創建這些自定義聯繫人的電話號碼

List<MyContactPhoneNumber> myNumbers = new List<MyContactPhoneNumber>(); 
在foreach循環複製數據

然後從PHONENUMBERS一個新的集合到一個列表我的聯繫人電話號碼

foreach (var number in PhoneNumbers) 
    myNumbers.Add(new MyContactPhoneNumber 
     { 
      //...copy all properties here, for example Phone_no = number.PhoneNumber 
     }); 

然後將其綁定到UI

ListOfNumbers.ItemsSource = myNumbers; 


// and in XAML 

<ListBox Name="ListOfNumbers" Height="60" Margin="36,0,0,0"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock x:Name="pno" Text="{Binding Path=Phone_no, Mode=OneWay}" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

如果你想雙向綁定支持和更好的總體綁定支持,使用的ObservableCollection而不是列表和MyContactPhoneNumber類執行INotifyPropertyChanged。