Тествам най-новия XamDataChart от Infragistics, използвайки WPF и c#. Някой има ли идея как мога да променя цвета на линията между точките от данни, нанесени върху линейна диаграма?
Бих искал също да поставя маркери само върху някои от начертаните точки. Мога да включвам и изключвам маркери за цялата поредица, като използвам MarkerType=”None”, но не намерих начин да маркирам само определени точки от данни въз основа на обвързване на данни с булева стойност, която също е налична като част от колекцията, използвана за чертане .
Това изглежда като доста основни неща, но засега съм на загуба.
Всякакви идеи или предложения ще бъдат високо оценени.
Опитах всичко, което мога да измисля, за да накарам това да работи, но никаква радост.
В кода по-долу се опитах да опростя възможно най-много, без да губя същността на проблема. Изглежда доста просто и всичко работи с изключение на обвързването на данни MarkerType. Промених типа на грешката от bool на MarkerType. Имам голяма колекция от обекти AbcData в колекцията AbcDataSources. Контекстът на данните е зададен в мрежата. LineSeries получава своите данни добре и диаграмата показва линиите.
Странното е, че съм задал ВСИЧКИ свойства за грешка на типа enum MarkerType.Circle и в дизайнера на Xaml кръговете се показват. Когато програмата работи, те не го правят.
Друга информация: Използвам VS2012, .NET 4.5, Infragistics WPF 2012 V2
Още веднъж всяка помощ за разбирането на това ще бъде високо оценена.
public class AbcData : BindableBase
{
private Single _dataValue;
private MarkerType _error;
public Single DataValue
{
get { return _dataValue; }
set { SetProperty(ref _dataValue, value); }
}
public MarkerType Error
{
get { return _error; }
set { SetProperty(ref _error, value); }
}
}
public class AbcDataSource
{
private readonly ObservableCollection<AbcData> _rawMDP = new ObservableCollection<AbcData>();
public ObservableCollection<AbcData> RawMDP
{
get { return _rawMDP; }
}
}
<Grid>
<Grid.DataContext>
<Data:AbcDataSource/>
</Grid.DataContext>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="16" />
</Grid.RowDefinitions>
<ig:XamDataChart x:Name="RTChart" Grid.Row="0" HorizontalZoomable="True" WindowScaleHorizontal="0.25"
WindowPositionHorizontal="1" HorizontalZoombarVisibility="Visible" VerticalZoomable="True"
VerticalZoombarVisibility="Visible" PlotAreaBackground="Black" CrosshairVisibility="Visible" Background="Black">
<ig:XamDataChart.Axes>
<ig:NumericYAxis x:Name="YAxis" Interval="1" Label="{}{:n2}" >
<ig:NumericYAxis.LabelSettings>
<ig:AxisLabelSettings Location="OutsideRight" Foreground="White" FontSize="10"
Extent="45" />
</ig:NumericYAxis.LabelSettings>
</ig:NumericYAxis>
<ig:CategoryXAxis x:Name="XAxis" Label="{}{XDateTime:HH:mm}" ItemsSource="{Binding RawMDP}" >
<ig:CategoryXAxis.LabelSettings>
<ig:AxisLabelSettings Foreground="White" FontSize="10" />
</ig:CategoryXAxis.LabelSettings>
</ig:CategoryXAxis>
</ig:XamDataChart.Axes>
<ig:XamDataChart.Series>
<ig:LineSeries x:Name="DataValue"
MarkerType="{Binding RawMDP/Error}"
XAxis="{Binding ElementName=XAxis}"
YAxis="{Binding ElementName=YAxis}"
ItemsSource="{Binding Path=RawMDP}"
ValueMemberPath="DataValue" />
</ig:XamDataChart.Series>
</ig:XamDataChart>
</Grid>