0

ListViewはいくつかの値を持っています。のフォントの色を変更したいListViewのですが、このコードが機能していません。

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:sys="clr-namespace:System;assembly=mscorlib"
    DataContext="{Binding RelativeSource={RelativeSource Self}}"
    Title="Navi" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="603" Width="1029"
    ShowInTaskbar="True" Closing="Window_Closing" Background="#FFD6D6D6">
<Window.Resources>

    <Style TargetType="{x:Type TextBlock}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding DarkTheme}" Value="True">
                <Setter Property="Control.Foreground" Value="Red"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>

cs:

public Int32 DarkTheme {get; set;}
    //First init
    public MainWindow()
    {
        DarkTheme = 1;
        //Init component

私は何が間違っているのですか?

4

1 に答える 1

1

DarkThemeからInt32に変更しboolます。

public bool DarkTheme {get; set;}


DarkTheme = true;

または

Bindingで使用できるConverterを作成することもできます。

 public class IntToBooleanConverter : IValueConverter
    {
      public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
      {
        if (value is int)
        {
            if ((int)value) == 1)
                return true;
            return false;
        }

        return DependencyProperty.UnsetValue;
      }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
       if (value is bool)
        {
            if ((bool)value) )
                return 1;
            return 0;
        }

        return DependencyProperty.UnsetValue;
    }
于 2012-12-30T17:37:48.223 に答える