Хорошо, мы выяснили, как исправить эту раздражающую вещь:
Мы создали конвертер, который получит значение и вернет цвет, который мы хотели.Раньше я пытался сделать со свойством:
#region Converters
/// <summary>
/// Retorna a cor do estado da placa
/// </summary>
public class RetornaCorEstadoBarra : DependencyObject, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
try
{
var ColorValue = (Int32)value;
if (ColorValue < 800)
return "Aqua";
else if (ColorValue < 1000)
return "Gray";
else //if (ColorValue > 1001)
return "Black";
}
catch
{
return "Black";
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
#endregion
Создание ресурса внутри xaml-файла:
<vm:RetornaCorEstadoBarra x:Key="RetornaCorEstadoBarra" />
И создание стиля чуть ниже этого ресурса:
<Style x:Key="ColorByGradeColumn" TargetType="DVC:ColumnDataPoint">
<Setter Property="Template" >
<Setter.Value>
<ControlTemplate TargetType="{x:Type DVC:ColumnDataPoint}">
<Border
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
Background="{Binding Slab.InfThick,Converter={StaticResource RetornaCorEstadoBarra}}"
>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Хорошо, теперь подвох:
<DVC:Chart x:Name="ColumnChart" Grid.ColumnSpan="2" Width="{Binding Path=GridWidthSize}" >
<DVC:ColumnSeries
AnimationSequence="FirstToLast" FlowDirection="LeftToRight" Title="Largura" ItemsSource="{Binding Path=Placas, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ToolTip="{Binding Path=Slab.SlabId}" DependentValueBinding="{Binding Path=Slab.InfThick}" IndependentValueBinding="{Binding Path=Slab.SlabId}"
DataPointStyle="{StaticResource ColorByGradeColumn}">
<DVC:ColumnSeries.IndependentAxis>
<DVC:CategoryAxis Orientation="X" Visibility="Visible" Foreground="Transparent"/>
</DVC:ColumnSeries.IndependentAxis>
</DVC:ColumnSeries>
</DVC:Chart>
</ScrollViewer>
Ну, проблема в том, что цвет на графике - это статический ресурс.Это не меняется во второй раз.Итак, с «импровизированным» динамическим ресурсом проблема исправлена, вот здесь:
Background="{Binding Slab.InfThick,Converter={StaticResource RetornaCorEstadoBarra}}"
Мы передаем параметр этому конвертеру RetornaCorEstadoBarra.Он получит параметр и вернет значение цвета.Затем внутри моей Диаграммы, чем Связывает с моим ресурсом, будет заполнена Диаграмма значением, полученным моим Конвертером.Но Диаграмма получает значение только один раз.Тем не менее, мой конвертер всегда будет возвращать значение, когда он получает значение.Вот в чем подвох.
Спасибо за помощь:)