Textblock样式绑定

时间:2011-11-25 11:33:44

标签: windows-phone-7 binding text coding-style textblock

我想使用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方法。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

你的做法是错误的。您不应尝试将样式绑定到ViewModel,而应使用Data Template Selector