2011-11-25 100 views
0

我想用Viewmodel綁定來更改代碼中的文本塊顏色或樣式。 這是我的了:這裏文本塊樣式綁定

<TextBlock 
    Visibility="{Binding SubTitleVisibility}" 
    Text="{Binding SubTitle1}" 
    TextWrapping="Wrap" 
    Margin="12,-6,12,0" 
    Style="{Binding SubColor}"/> 

每一個綁定的工作除了風格。雖然它應用了字體大小但沒有顏色。 (女王會說這是一種魔法)

視圖模型:

internal DisplayMode Mode 
    { 
     get 
     { 
      return _mode; 
     } 
     set 
     { 
      //if (value != _type) 
      //{ 
      _mode = value; 
      if (value.Equals(DisplayMode.EditMode) && _type.Equals(ItemType.WithIcon)) 
      { 
       _iconVisibility = Visibility.Visible; 
       SubTitleVisibility = Visibility.Collapsed; 
      } 
      else if (_type.Equals(ItemType.WithSubTitle)) 
      { 
       _iconVisibility = Visibility.Collapsed; 
       SubTitleVisibility = Visibility.Visible; 
      } 

      NotifyPropertyChanged("Mode"); 
      NotifyPropertyChanged("SubColor"); 
     } 
    } 

    internal Style SubColor 
    { 
     get 
     { 
      Style temp; 
      if (_group != "phone" && _group != "email" && _mode == DisplayMode.ViewMode) 
       temp = (Style)App.Current.Resources["PhoneTextNormalStyle"]; 
      else 
       temp = (Style)App.Current.Resources["PhoneTextAccentStyle"]; 

      return temp; 
     } 
    } 

我發現這個codesnippet here,但它甚至不會進入SubColor的get方法。

在此先感謝您的幫助。

回答

2

你的方法是錯誤的。您不應嘗試將樣式綁定到ViewModel,而應使用Data Template Selector

+0

感謝那個鏈接它是有用的它現在工作正常。 –