У меня есть DataTemplate, который используется в ListBox:Как изменить цвет шрифта списка данных, привязанного к datatemplated, используя конвертер?
<local:BooleanToFontColorConverter x:Key="boolToFontColor" />
<DataTemplate x:Key="ListBox_DataTemplateSpeakStatus">
<Label Width="Auto">
<TextBlock Name="MY_TextBlock" Text="Hello!" Foreground="{Binding Path=MY_COLOR, Converter={StaticResource boolToFontColor}}" />
</Label>
</DataTemplate>
MY_COLOR является следующий фрагмент кода:
public class Packet_Class : INotifyPropertyChanged
{
private bool _my_color = false;
public bool MY_COLOR { get { return _my_color; }
set { _my_color = value; RaisePropertyChanged("MY_COLOR"); } }
}
, а затем, при необходимости я установить свойство, которое я думаю, было бы уволить RaisePropertyChanged функция
myPacketClass.MY_COLOR = true;
в то время как boolToFontColor "пытается" использовать этот бит:
public class BooleanToFontColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
if (value is Boolean)
{
return ((bool)value) ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.Black);
}
return new SolidColorBrush(Colors.Black);
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
throw new NotImplementedException();
}
}
Когда я изменяю значение MY_COLOR с true на false или наоборот, я не вижу видимых изменений в тексте переднего плана во время выполнения. Кто-нибудь может дать совет относительно того, где я ошибаюсь? Большое спасибо и благодарю вас заранее.
EDIT:
Некоторая дополнительная информация, чтобы попытаться обеспечить большую ясность. Я использую мой DataTemplate в ListBox, как это:
<ListBox x:Name="MyUserList" ItemTemplate="{StaticResource ListBox_DataTemplateSpeakStatus}" SelectionMode="Extended" />
И в моем окне WPF элементе я создал мои локальное пространство имен в пространстве имен, что мой MainWindow.xaml.cs инкапсулируется в:
xmlns:local ="clr-namespace:My_NameSpace"
Вы поднимаете PropertyChanged, когда установлен MY_COLOR? –
Я не был, я довольно новичок в этом материале :) Я редактировал свое оригинальное сообщение для чего-то, что, на мой взгляд, имеет смысл после изучения функции RaisedPropertyChanged. Он по-прежнему не работает, как я мог бы подумать ... на самом деле он никогда не ломается в мою функцию конвертера. Спасибо за ваш ответ/предложение. –
Что такое 'myPacketClass.PacketHandRaised = true?' For? Вы имеете в виду 'MY_COLOR = true'? –