Внутри самого приложения данные по приёму обновляются нормально.
Если не работает обновление по методуКопал в отладке.
Копал в отладке.Получается что в данном случае OnPropertyChanged() не работает?
Получается OnPropertyChanged() работает неправильно? Просто дело в том, есть ли вероятность что сработает через интерфейс INotifyCollectionChangedон справлялся до этого и метод OnCollectionChanged()?всё обновлял правильно.Точнее даже обновляет всё,кроме графика.
Внутри самого приложения данные по приёму обновляются нормально.
Если не работает обновление по методу OnPropertyChanged(), есть ли вероятность что сработает через интерфейс INotifyCollectionChanged и метод OnCollectionChanged()?
Внутри самого приложения данные по приёму обновляются нормально.
Копал в отладке.
Копал в отладке.Получается что в данном случае OnPropertyChanged() не работает?
Получается OnPropertyChanged() работает неправильно? Просто дело в том, что он справлялся до этого и всё обновлял правильно.Точнее даже обновляет всё,кроме графика.
Внутри самого приложения данные по приёму обновляются нормально.
Если не работает обновление по методу OnPropertyChanged(), есть ли вероятность что сработает через интерфейс INotifyCollectionChanged и метод OnCollectionChanged()?
Внутри самого приложения данные по приёму обновляются нормально.
Внутри самого приложения данные по приёму обновляются нормально.
Если не работает обновление по методу OnPropertyChanged(), есть ли вероятность что сработает через интерфейс INotifyCollectionChanged и метод OnCollectionChanged()?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap">
Fully Responsive
</TextBlock>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Margin="0 0 10 0">Points</TextBlock>
<Button Command="{Binding DrawPointCommand,Mode=OneWay}" >+</Button>
<Button>/</Button>
<Button>-</Button>
<Button >MoveAll</Button>
<TextBlock Margin="0 0 10 0" VerticalAlignment="Center">Series</TextBlock>
<Button>+</Button>
<Button>-</Button>
</StackPanel>
<lvc:CartesianChart Grid.Row="2" LegendLocation="Right">
<lvc:CartesianChart LegendLocation="Right">
<lvc:CartesianChart.Series>
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC0"
Values="{Binding MyValues , UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC1"
Values="{Binding SPoints}" />
</lvc:CartesianChart.Series>
</lvc:CartesianChart>
</lvc:CartesianChart>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap">
Fully Responsive
</TextBlock>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Margin="0 0 10 0">Points</TextBlock>
<Button Command="{Binding DrawPointCommand,Mode=OneWay}" >+</Button>
<Button>/</Button>
<Button>-</Button>
<Button >MoveAll</Button>
<TextBlock Margin="0 0 10 0" VerticalAlignment="Center">Series</TextBlock>
<Button>+</Button>
<Button>-</Button>
</StackPanel>
<lvc:CartesianChart Grid.Row="2" LegendLocation="Right">
<lvc:CartesianChart LegendLocation="Right">
<lvc:CartesianChart.Series>
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC0"
Values="{Binding MyValues , UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC1"
Values="{Binding SPoints}" />
</lvc:CartesianChart.Series>
</lvc:CartesianChart>
</lvc:CartesianChart>
</Grid>
</UserControl>
Пока что попытался сделать через кнопку с командой DrawPointCommandDrawPointCommand,которая цепляет температуру из датчика.Кнопка Кнопка вечно рисует нулевое значение.
Метод
Метод подписанный на DrawPointCommand:private void DrawPoint(){
MyValues.Add(new ObservableValue(_monitoringblock.Temperature));}DrawPointCommand
Часть:
private void DrawPoint()
{
MyValues.Add(new ObservableValue(_monitoringblock.Temperature));
}
Часть конструктора которая относится к графикам :MyValues = new ChartValues<ObservableValue>{new ObservableValue(5), new ObservableValue(7), new ObservableValue(8), new ObservableValue(3)};var lineSeries = new LineSeries {Values = MyValues, StrokeThickness = 4, Fill = Brushes.Transparent, PointGeometrySize = 0, DataLabels = false};SeriesCollection = new SeriesCollection { lineSeries };
Свойство
MyValues = new ChartValues<ObservableValue>
{
new ObservableValue(5), new ObservableValue(7), new ObservableValue(8), new ObservableValue(3)
};
var lineSeries = new LineSeries
{
Values = MyValues, StrokeThickness = 4, Fill = Brushes.Transparent, PointGeometrySize = 0, DataLabels = false
};
SeriesCollection = new SeriesCollection { lineSeries };
Свойство MyValues:public ChartValues<ObservableValue> MyValues{get{return _myvalue;}set{_myvalue = value;OnPropertyChanged(nameof(MyValues));}}
public ChartValues<ObservableValue> MyValues
{
get
{
return _myvalue;
}
set
{
_myvalue = value;
OnPropertyChanged(nameof(MyValues));
}
}
В отладке по нажатию кнопки изменяется количество элементов,но судя по графику это всё нули.Через Через принятые от датчика данные не рисуются даже нули.
Так
Так выглядит событие приема по порту :private void dataReceived(object sender, EventArgs e) { _myvalue.Add(new ObservableValue(MonitoringViewModel.Concentration));OnPropertyChanged("MyValues");}
Внутри
private void dataReceived(object sender, EventArgs e)
{
_myvalue.Add(new ObservableValue(MonitoringViewModel.Concentration));
OnPropertyChanged("MyValues");
}
Внутри самого приложения данные по приёму обновляются нормально.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap">
Fully Responsive
</TextBlock>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Margin="0 0 10 0">Points</TextBlock>
<Button Command="{Binding DrawPointCommand,Mode=OneWay}" >+</Button>
<Button>/</Button>
<Button>-</Button>
<Button >MoveAll</Button>
<TextBlock Margin="0 0 10 0" VerticalAlignment="Center">Series</TextBlock>
<Button>+</Button>
<Button>-</Button>
</StackPanel>
<lvc:CartesianChart Grid.Row="2" LegendLocation="Right">
<lvc:CartesianChart LegendLocation="Right">
<lvc:CartesianChart.Series>
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC0"
Values="{Binding MyValues , UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC1"
Values="{Binding SPoints}" />
</lvc:CartesianChart.Series>
</lvc:CartesianChart>
</lvc:CartesianChart>
</Grid>
Пока что попытался сделать через кнопку с командой DrawPointCommand,которая цепляет температуру из датчика.Кнопка вечно рисует нулевое значение.
Метод подписанный на DrawPointCommand:private void DrawPoint(){
MyValues.Add(new ObservableValue(_monitoringblock.Temperature));}
Часть конструктора которая относится к графикам :MyValues = new ChartValues<ObservableValue>{new ObservableValue(5), new ObservableValue(7), new ObservableValue(8), new ObservableValue(3)};var lineSeries = new LineSeries {Values = MyValues, StrokeThickness = 4, Fill = Brushes.Transparent, PointGeometrySize = 0, DataLabels = false};SeriesCollection = new SeriesCollection { lineSeries };
Свойство MyValues:public ChartValues<ObservableValue> MyValues{get{return _myvalue;}set{_myvalue = value;OnPropertyChanged(nameof(MyValues));}}
В отладке по нажатию кнопки изменяется количество элементов,но судя по графику это всё нули.Через принятые от датчика данные не рисуются даже нули.
Так выглядит событие приема по порту :private void dataReceived(object sender, EventArgs e) { _myvalue.Add(new ObservableValue(MonitoringViewModel.Concentration));OnPropertyChanged("MyValues");}
Внутри самого приложения данные по приёму обновляются нормально.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock TextWrapping="Wrap">
Fully Responsive
</TextBlock>
<StackPanel Grid.Row="1" Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" Margin="0 0 10 0">Points</TextBlock>
<Button Command="{Binding DrawPointCommand,Mode=OneWay}" >+</Button>
<Button>/</Button>
<Button>-</Button>
<Button >MoveAll</Button>
<TextBlock Margin="0 0 10 0" VerticalAlignment="Center">Series</TextBlock>
<Button>+</Button>
<Button>-</Button>
</StackPanel>
<lvc:CartesianChart Grid.Row="2" LegendLocation="Right">
<lvc:CartesianChart LegendLocation="Right">
<lvc:CartesianChart.Series>
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC0"
Values="{Binding MyValues , UpdateSourceTrigger=PropertyChanged,Mode=OneWay}" />
<lvc:LineSeries PointGeometry="{x:Null}" Fill="Transparent"
StrokeThickness="3" Title="0xC1"
Values="{Binding SPoints}" />
</lvc:CartesianChart.Series>
</lvc:CartesianChart>
</lvc:CartesianChart>
</Grid>
</UserControl>
Пока что попытался сделать через кнопку с командой DrawPointCommand,которая цепляет температуру из датчика. Кнопка вечно рисует нулевое значение.
Метод подписанный на DrawPointCommand:
private void DrawPoint()
{
MyValues.Add(new ObservableValue(_monitoringblock.Temperature));
}
Часть конструктора которая относится к графикам :
MyValues = new ChartValues<ObservableValue>
{
new ObservableValue(5), new ObservableValue(7), new ObservableValue(8), new ObservableValue(3)
};
var lineSeries = new LineSeries
{
Values = MyValues, StrokeThickness = 4, Fill = Brushes.Transparent, PointGeometrySize = 0, DataLabels = false
};
SeriesCollection = new SeriesCollection { lineSeries };
Свойство MyValues:
public ChartValues<ObservableValue> MyValues
{
get
{
return _myvalue;
}
set
{
_myvalue = value;
OnPropertyChanged(nameof(MyValues));
}
}
В отладке по нажатию кнопки изменяется количество элементов,но судя по графику это всё нули. Через принятые от датчика данные не рисуются даже нули.
Так выглядит событие приема по порту :
private void dataReceived(object sender, EventArgs e)
{
_myvalue.Add(new ObservableValue(MonitoringViewModel.Concentration));
OnPropertyChanged("MyValues");
}
Внутри самого приложения данные по приёму обновляются нормально.