2014-12-29 30 views
2

如何在不使用值轉換器的xaml 中將字符串屬性格式化爲電話號碼格式。我也使用 數據註釋[電話]。 我試過這個,但它不工作。String.format xaml電話號碼

<TextBlock Text="{Binding Person.Phone, StringFormat=\{0:(000)000\-0000\}}"/> 
+0

不工作怎麼樣?另外,使用一個該死的值轉換器。你可能會在這個問題,如果你:)創建一個類型來存儲電話號碼和IVC將該類型轉換爲文本,然後再回來。將是最簡單的事情。 – Will

+0

@Will從你使用的語言我看到你也不喜歡價值轉換器...無論如何感謝 –

+1

什麼是輸入類型?串?舉一個你使用的數據的例子... – codekaizen

回答

0

下面是如何做到這一點在第一切口:

public class ContactViewModel : INotifyPropertyChanged 
{ 
    private Contact _contact; 

    public ContactViewModel(Contact contact) 
    { 
     _contact = contact; 
    } 

    public String Phone 
    { 
     get 
     { 
      var builder = new StringBuilder(_contact.Phone); 
      builder.Insert(6, '-'); 
      builder.Insert(3, ')'); 
      builder.Insert(0, '('); 
      return builder.ToString(); 
     } 
    } 
} 

然後在XAML,我只是綁定到Phone屬性,但使用該視圖模型適配層,而不是直接結合在模型對象上。這是View Model最顯着的特點:使模型適應視圖。