0

Numbers というデータベース テーブルから数値を受け取る DataGridTextColumn があります。セル内の数値が正の場合、次の DataGridTextColumn に「Positive」という単語が含まれるようにします。IConverter Styles を試してみましたが、まだ正しく行う方法がわかりません。誰かが私を助けてくれることを願っています。

これまでの私のコードは次のとおりです。

<DataGrid Grid.Row="0" Grid.Column="1" AutoGenerateColumns="False" IsReadOnly="false" CanUserAddRows="True" Margin="5,5,10,5" ItemsSource="{Binding ElementName=Numbers}">

        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Num}" Header="Number" FontSize="16"/>

            <DataGridTextColumn Header="Positive/Negative" FontSize="16">

                <DataGridTextColumn.ElementStyle>
                    <Style TargetType="{x:Type TextBlock}">
                        <Setter Property="Text" Value="{Binding Amount, Converter={StaticResource PositiveNegativeConverter}}"/>
                    </Style>
                </DataGridTextColumn.ElementStyle>
            </DataGridTextColumn>
    </DataGrid>

リソース内にもこれがあります:

    <local:PositiveNegativeConverter x:Key="PositiveNegativeConverter"/>
</UserControl.Resources>      

私のコンバーターは次のようになります。

class PositiveNegativeConverter : IValueConverter
{
  public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        bool revert = (parameter as string).StartsWith("-");

        string stringValue = value as string;
        string compareValue = parameter as string;

        if (revert)
        {
            return "Negative";
        }
        else
            return "Positive";
    }
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}
4

1 に答える 1