Xaml 如何将Syncfusion win phone chart自定义调色板与条件一起放置

Xaml 如何将Syncfusion win phone chart自定义调色板与条件一起放置,xaml,windows-phone-8,charts,syncfusion,color-palette,Xaml,Windows Phone 8,Charts,Syncfusion,Color Palette,我有一个win phone图表控件,希望根据三个条件显示数据。所以我使用了一个棒序列,每个棒满足三个条件中的任何一个。所以我只想显示三种不同颜色的条形图,每种颜色对应一个条件 <chart:ColumnSeries Label="Series1" ItemsSource="{Binding CategoricalDatas}" XBindingPath="Category" YBindingPath="Value" Palette="Custom">

我有一个win phone图表控件,希望根据三个条件显示数据。所以我使用了一个棒序列,每个棒满足三个条件中的任何一个。所以我只想显示三种不同颜色的条形图,每种颜色对应一个条件

<chart:ColumnSeries Label="Series1" ItemsSource="{Binding CategoricalDatas}"

                XBindingPath="Category" YBindingPath="Value" Palette="Custom">   <chart:ColumnSeries.ColorModel>

   <chart:ChartColorModel>

       <chart:ChartColorModel.CustomBrushes>

           <SolidColorBrush Color="#F02B2C"/>

           <SolidColorBrush Color="#FF3B5C"/>

           <SolidColorBrush Color="#F06B3C"/>

           <SolidColorBrush Color="#FFFB6C"/>

           <SolidColorBrush Color="#F0FB8C"/>

        </chart:ChartColorModel.CustomBrushes>

    </chart:ChartColorModel>

</chart:ColumnSeries.ColorModel>


这是一个简单的方法来放置不同颜色的酒吧。如何指定条件?

您可以在Chart Series ColorModel converter中添加条件,并可以根据指定的条件返回自定义笔刷,如下面的代码段所示

代码段[C#]:

viewmodel model1=新的viewmodel();
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{
model1.CustomBrush=新列表();
foreach(model1.Products中的var项)
{
如果(item.mark>=80)
{
model1.CustomBrush.Add(新的SolidColorBrush(Colors.Green));
}
否则,如果(项目标记<50)
{
model1.CustomBrush.Add(新的SolidColorBrush(Colors.Red));
}
否则如果(item.mark>50和&item.mark<80)
{
model1.CustomBrush.Add(新的SolidColorBrush(Colors.Blue));
}
}
ChartColorModel=新的ChartColorModel();
model.CustomBrush=model1.CustomBrush;
收益模型;
}
问候,


Sheik

谢谢,但同步支持部门也给了我同样的答案。感谢同步快速支持
    viewmodel model1 = new viewmodel();

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        model1.CustomBrush = new List<Brush>();
        foreach (var item in model1.Products)
        {
            if (item.mark >= 80)
            {
                model1.CustomBrush.Add(new SolidColorBrush(Colors.Green));

            }
            else if (item.mark < 50)
            {
                model1.CustomBrush.Add(new SolidColorBrush(Colors.Red));
            }
            else if (item.mark > 50 && item.mark < 80)
            {
                model1.CustomBrush.Add(new SolidColorBrush(Colors.Blue));
            }
        }
        ChartColorModel model = new ChartColorModel();
        model.CustomBrushes = model1.CustomBrush;
        return model;

    }