Hallo liebes Forum,
heute habe ich ein sehr komplexes Problem.
In meinem Fenster habe ich ein DataGrid mit DataTemplates
Dieses DataGrid wird an eine ObservableCollection "Consumers" gebunden, die ich im Code Behind definiere.
Hier einmal die Klasse Consumer
Nun möchte ich aber, dass in dem DataGrid statt der ID der zugehörige Text eines Objekts angezeigt wird.
Beispiel:
Ich habe in der Klasse Consumer die Eigenschaft
In dem DataGrid soll nun die Eigenschaft
Die ganzen Room Objekte sind in einer Liste im Code Behind gespoeichert (s.o.
Ich weiß, das klingt sehr kompliziert, kann mir aber trotzdem jemand weiterhelfen?
Viele Grüße
Florian
heute habe ich ein sehr komplexes Problem.
In meinem Fenster habe ich ein DataGrid mit DataTemplates
XML-Quellcode
- <DataGrid AutoGenerateColumns="False" x:Name="dg_data" Margin="10,10,10,10.334" ItemsSource="{Binding Consumers}"
- AlternatingRowBackground="Gainsboro" AlternationCount="2"
- CanUserReorderColumns="False" CanUserResizeColumns="True"
- CanUserResizeRows="False" CanUserSortColumns="True"
- CanUserAddRows="False" CanUserDeleteRows="False"
- SelectionChanged="Dg_data_SelectionChanged"
- SelectionMode="Single" SelectionUnit="FullRow" Grid.Row="2" >
- <DataGrid.Columns>
- <DataGridTemplateColumn CanUserSort="True" Header="Datenherkunft">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Padding="7,3" Text="{Binding DataCollectorID}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTemplateColumn CanUserSort="True" Header="Stockwerk">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Padding="7,3" Text="{Binding Floor}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTemplateColumn CanUserSort="True" Header="Raum">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Padding="7,3" Text="{Binding RoomNumber}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTemplateColumn CanUserSort="True" Header="Gerät">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Padding="7,3" Text="{Binding DeviceID}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTemplateColumn CanUserSort="True" Header="Anzahl">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Padding="7,3" Text="{Binding DeviceCount}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- <DataGridTemplateColumn CanUserSort="True" Header="Zeitbereich">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Padding="7,3" Text="{Binding TimeAreaID}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>
- </DataGrid.Columns>
- </DataGrid>
Dieses DataGrid wird an eine ObservableCollection "Consumers" gebunden, die ich im Code Behind definiere.
C#-Quellcode
- ObservableCollection<Consumer> Consumers { get; set; }
- List<Device> Devices { get; set; }
- List<DataCollector> DataCollectors { get; set; }
- List<TimeArea> TimeAreas { get; set; }
- List<Room> Rooms { get; set; }
- List<DeviceGroup> DeviceGroups { get; set; }
- public win_overview()
- {
- InitializeComponent();
- openFile();
- }
- public void openFile()
- {
- Consumers = new ObservableCollection<Consumer>();
- //ObservabelCollection wird befüllt ...
- dg_data.DataContext = this;
- }
Hier einmal die Klasse Consumer
Nun möchte ich aber, dass in dem DataGrid statt der ID der zugehörige Text eines Objekts angezeigt wird.
Beispiel:
Ich habe in der Klasse Consumer die Eigenschaft
RoomID
, darin ist eine Zahl gespeichert.In dem DataGrid soll nun die Eigenschaft
Floor + RoomNumber
des Objects Room angezeigt werden, dass die gleiche ID hat.Die ganzen Room Objekte sind in einer Liste im Code Behind gespoeichert (s.o.
Ich weiß, das klingt sehr kompliziert, kann mir aber trotzdem jemand weiterhelfen?
Viele Grüße
Florian
----
WebApps mit C#: Blazor
WebApps mit C#: Blazor