Mam problem ze zbindowaniem wartości odczytane z serial porta. Stworzyłem taki model i view model
public class ControllerModel { #region Properties public float Kp { get; set; } public float Ki { get; set; } public float Kd { get; set; } #endregion } public List Regulators { get; set; } = new List() { new ControllerModel(), new ControllerModel(), new ControllerModel() }; Po odczytaniu ramki z serialPorta i odkodowaniu jej chcę zapisac odpowiednie wartości do odpowiedniego regulatora
Regulators[0].Kp = wynik[0]; Regulators[0].Ki = wynik[1]; Regulators[0].Kd = wynik[2]; A w XAML mam decimalUpDown do wyświetlania i zmieniania tych wartości, żeby później je wysłać: ``
Jak zrobić, żeby wyświetlało, zaraz po dodaniu w metodzie która odbiera ramkę? To zbidnowanie w XAML nie działa ( ͡°ʖ̯͡°)
@Caly_na_bialo: ehh, za to uwielbiam wpfa (╥﹏╥) patrzyłeś czy w konsoli nie wypluwa błędu, że nie może się zbindować? Nie pracowałam z xceed, ale w dokumentacji widzę propercję Value zamiast Text, może spróbuj do tego?
@zapomnialam_loginu: Teraz to on w ogóle nie widzi tego obiektu choć go stworzyłem... Kurde już nie rozumiem o co chodzi. Też mam ten sam problem z WPFem(╯°□°)╯︵┻━┻
@Caly_na_bialo: Tak jak to teraz napisałeś to Regulators to jest pole a nie property, a wpf bindowuje się tylko do property, zmień może na tak jak masz w RadioChannels
Regulators[1].Kp = wynik[0]; Regulators[1].Ki = wynik[1]; Regulators[1].Kd = wynik[2]; OnPropertyChanged("Regulators[1].Kp"); OnPropertyChanged("Regulators[1].Ki"); OnPropertyChanged("Regulators[1].Kd"); Dopiero to zadziałało Dzięki za pomoc!!
public class ControllerModel
{
#region Properties
public float Kp { get; set; }
public float Ki { get; set; }
public float Kd { get; set; }
#endregion
}
public List Regulators { get; set; }
= new List()
{
new ControllerModel(),
new ControllerModel(),
new ControllerModel()
};
Po odczytaniu ramki z serialPorta i odkodowaniu jej chcę zapisac odpowiednie wartości do odpowiedniego regulatora
Regulators[0].Kp = wynik[0];
Regulators[0].Ki = wynik[1];
Regulators[0].Kd = wynik[2];
A w XAML mam decimalUpDown do wyświetlania i zmieniania tych wartości, żeby później je wysłać:
``
Jak zrobić, żeby wyświetlało, zaraz po dodaniu w metodzie która odbiera ramkę? To zbidnowanie w XAML nie działa ( ͡° ʖ̯ ͡°)
#csharp #mvvm #wpf #xaml #serialport
https://pastebin.com/xgdFq5XS
Regulators[1].Kp = wynik[0];
Regulators[1].Ki = wynik[1];
Regulators[1].Kd = wynik[2];
OnPropertyChanged("Regulators[1].Kp");
OnPropertyChanged("Regulators[1].Ki");
OnPropertyChanged("Regulators[1].Kd");
Dopiero to zadziałało
Dzięki za pomoc!!