Hallo,
Ich schreibe ein Programm dass mir aktive Prozesse in einer ListView darstellt. Das Programm selbst funktioniert soweit, nur beim darstellen der Icons der Prozesse in einer eigenen Spalte komme ich nicht weiter.
Ich habe in meinem Testfenster 2 ListView´s gemacht und verschiedene Arten von Bindings probiert, bisher ohne Erfolg.
Auch die Umwandlung der Bilder von Icon in Bitmap oder Image habe ich versucht, alles erfolglos. Es wird mir nichts angezeigt in der Spalte.
Über weitere Ansätze wäre ich sehr dankbar.
MainWindow.xaml Versuch 1
MainWindow.xaml Versuch 2:
im .vb code die class erstellt:
Als Eigenschaft von Main Window und den Sub der die Prozesse auslest:
Ich schreibe ein Programm dass mir aktive Prozesse in einer ListView darstellt. Das Programm selbst funktioniert soweit, nur beim darstellen der Icons der Prozesse in einer eigenen Spalte komme ich nicht weiter.
Ich habe in meinem Testfenster 2 ListView´s gemacht und verschiedene Arten von Bindings probiert, bisher ohne Erfolg.
Auch die Umwandlung der Bilder von Icon in Bitmap oder Image habe ich versucht, alles erfolglos. Es wird mir nichts angezeigt in der Spalte.
Über weitere Ansätze wäre ich sehr dankbar.
MainWindow.xaml Versuch 1
XML-Quellcode
- <ListView x:Name="listView1" ItemsSource="{Binding Path=ProzessList}">
- <ListView.View>
- <GridView>
- <GridViewColumn Header="Icon" DisplayMemberBinding="{Binding Path=Icon}" />
- <GridViewColumn Header="Prozessname" DisplayMemberBinding="{Binding Path=Prozessname}" />
- <GridViewColumn Header="Limit" DisplayMemberBinding="{Binding Path=Limit}" />
- <GridViewColumn Header="Prozessexe" DisplayMemberBinding="{Binding Path=Prozessexe}" />
- </GridView>
- </ListView.View>
- </ListView>
MainWindow.xaml Versuch 2:
XML-Quellcode
- <ListView x:Name="listView" ItemsSource="{Binding Path=ProzessList}" Margin="167,0,0,246" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Width="632">
- <ListView.View>
- <GridView>
- <GridViewColumn Header="Icon" DisplayMemberBinding="{Binding Icon}">
- <GridViewColumn.CellTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <Image Source="{Binding Icon}"/>
- </StackPanel>
- </DataTemplate>
- </GridViewColumn.CellTemplate>
- </GridViewColumn>
- <GridViewColumn DisplayMemberBinding="{Binding Prozessname}"
- Header="Prozessname"
- Width="Auto"/>
- <GridViewColumn DisplayMemberBinding="{Binding Limit}"
- Header="Limit"
- Width="Auto"/>
- <GridViewColumn DisplayMemberBinding="{Binding Prozessexe}"
- Header="Prozess.exe"
- Width="Auto"/>
- </GridView>
- </ListView.View>
- </ListView>
im .vb code die class erstellt:
VB.NET-Quellcode
- Public Class Prozess
- Public Sub New(ByVal Icon As Image, ByVal Prozessname As String, ByVal Limit As String, ByVal Prozessexe As String)
- Me.Icon = Icon
- Me.Prozessname = Prozessname
- Me.Limit = Limit
- Me.Prozessexe = Prozessexe
- End Sub
- Public Property Icon As Image
- Public Property Prozessname As String
- Public Property Limit As String
- Public Property Prozessexe As String
- End Class
Als Eigenschaft von Main Window und den Sub der die Prozesse auslest:
VB.NET-Quellcode
- Class MainWindow
- Public Property ProzessList As New ObservableCollection(Of Prozess)
- Private Sub ME_loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
- Me.DataContext = Me
- End Sub
- '##################### auflisten aller aktiven Prozesse #####################
- Private Sub Prozesse_auflisten_Click(sender As Object, e As RoutedEventArgs) Handles Prozesse_auflisten.Click
- Dim Prozessliste As New List(Of String)
- InitializeComponent()
- For Each Process As Process In Diagnostics.Process.GetProcesses
- If Not Prozessliste.Contains(Process.ProcessName) Then
- Try
- Prozessliste.Add(Process.ProcessName)
- Dim img As Image = System.Drawing.Icon.ExtractAssociatedIcon(Process.MainModule.FileName).ToBitmap
- ProzessList.Add(New Prozess(img, Process.ProcessName, "", Process.MainModule.FileName))
- Catch
- End Try
- End If
- Next
- End Sub
- End Class
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „alex156“ ()