Problema visualizzazione multipla

di il
3 risposte

Problema visualizzazione multipla

Salve,

come scritto in presentazione sto realizzando la mia prima app ma sono ad un punto morto.
Sto realizzando (a titolo di studio) e per mio interesse personale una app che legge dati da cardiofrequenzimetri Ant+.
L'app funziona, riceve e visualizza correttamente una singola persona, ma avendo un ricevitore a 8 canali vorrei visualizzare dati di piu' persone contemporaneamente, inserendo nella mia View caselle multiple ognuna legata ad un utente diverso.
L'app e' realizzata seguento lo schema MVVM
Ho provato ad usare HierarchicalDataTemplate ma senza successo (forse non ho capito bene come usarlo)
Voi cosa consigliate di usare?

3 Risposte

  • Re: Problema visualizzazione multipla

    Ciao,
    immagino tu stia usando WPF\XAML utilizzando il pattern MVVM.

    Se ho capito bene vuoi visualizzare in una View i dati di "n" utenti.
    In questo caso dovresti avere una classe modello contenente tutti i dati del cardiofrequenzimetro associati ad un singolo utente. Hai detto che questi dati riesci a ricavarli per cui riesci ad instanziare un oggetto contenente i dati.

    Nel Viewmodel associato alla View devi avere una lista di modelli creati nel punto precedente, fai attenzione siccome devi usare un Observablecollection .

    Nella tua View devi avere:
    1. un Datatable atto a contenere i dati di un singolo modello
    2. una ListView bindata alla lista di modelli. La Listview utilizza come formato dati il Datatable creato al punto 1.

    Se non li conosci studia l'observablecollection e i datatable che dovrebbero darti la soluzione.

    Se hai qualche altro tipo di problema o difficoltà prova a spiegare che strutture hai nel code-behind e cosa hai bindato nella view così vediamo cosa non funziona

    Spero di averti aiutato

  • Re: Problema visualizzazione multipla

    Ciao scusa nella fretta ho sbagliato termine.

    Non devi usare Datatable ma i DATATEMPLATE
  • Re: Problema visualizzazione multipla

    Grazie mi andro' a studiare la DataTemplate

    nel frattempo posto quello che avevo gia' provato a fare ma senza successo

    Questa e' la classe della ViewModel
    
    namespace AntHR.ViewModel
    {
        public class AntSensorViewModel : ViewModelBase
        {
            #region Attribute
            private IFrameNavigationService _navigationService;
            private string _page1Text = "Channel";
            private AntSensor antsens;
            private ObservableCollection<AntSensorViewModel> antsensactive;
            #endregion
    
            #region Properties
            public string Name => antsens.Name;
            public int HBCount => antsens.HBCount;
            public ObservableCollection<AntSensorViewModel> AntSensActive => antsensactive;
            #endregion
    
            #region Constructors
            public AntSensorViewModel(AntSensor antsensor)
            {
                this.antsens = antsensor;
                antsensactive = new ObservableCollection<AntSensorViewModel>();
                
            }
    
    
            #endregion
            
        }
    }
    e questa e' la parte XAML
    
     xmlns:ViewModel="clr-namespace:AntHR.ViewModel"
          mc:Ignorable="d" 
          d:DesignHeight="150" d:DesignWidth="250"
          Title="ChannelView" DataContext="{Binding Path=AntSensorViewModel, Source={StaticResource Locator}}">
        <Viewbox>
            <Grid>
    
                <TreeView ItemsSource="{Binding AntSensorActive}">
                    <TreeView.Resources>
                        <HierarchicalDataTemplate DataType="{x:Type ViewModel:AntSensorViewModel}" ItemsSource="{Binding Path=AntSensActive}">
                            <Border x:Name ="border"  Background="Red" BorderBrush="Blue" BorderThickness="1" Margin="0,3">
                                <TextBlock Text="{Binding Name}" FontWeight="Bold"/>
                            </Border>
                        </HierarchicalDataTemplate>
                    </TreeView.Resources>
                </TreeView>
    
    e questo e' quello che viene visualizzato:
    AntHR.jpg
    AntHR.jpg

Devi accedere o registrarti per scrivere nel forum
3 risposte