WinFuture-Forum.de: nicht behandelte ausnahme!? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

nicht behandelte ausnahme!? datenbindungen und listbox


#1 Mitglied ist offline   ::YC Tech:: 

  • Gruppe: aktive Mitglieder
  • Beiträge: 170
  • Beigetreten: 01. Oktober 11
  • Reputation: 0
  • Geschlecht:Männlich
  • Interessen:An PCs basteln bis der IT kommt :D

geschrieben 09. Mai 2013 - 11:58

moinsen, alle programmierer!

ich schreibe gerade an einer anwendung, mit der man minecraft-server (bukkit) verwalten kann. dabei soll es auch die installierten plugins auflisten. das hab ich auch mit einer listview/listbox (seh kein unterschied zwischen den beiden) gemacht, die die items aus einer bindung kriegt. doch wenn er jetzt items hinzufügen soll, bekomme ich diese meldung:

Zitat

Eine nicht behandelte Ausnahme des Typs "System.StackOverflowException" ist in WindowsBase.dll aufgetreten.

und im ausgabe fenster ist auch nichts auffälliges zu sehen.

der xaml-code:
<ListBox x:Name="Plugins" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True" ItemTemplate="{StaticResource PluginItem}" Background="Transparent" BorderThickness="0"/>

...und hier die vorlage der items:
<DataTemplate x:Key="PluginItem">
                <Grid MinHeight="32">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="32"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="20"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="2"/>
                        <RowDefinition Height="32"/>
                        <RowDefinition Height="2"/>
                    </Grid.RowDefinitions>
                    <Image Name="plugIcon" Tag="{Binding Path=PluginStatus}" Grid.Column="0" Grid.Row="1">
                        <Image.Resources>
                            <Style TargetType="Image">
                                <Style.Triggers>
                                    <Trigger Property="Tag" Value="Working">
                                        <Setter Property="Source" Value="Resources/Working.png"/>
                                    </Trigger>
                                    <Trigger Property="Tag" Value="Disabled">
                                        <Setter Property="Source" Value="Resources/Disabled.png"/>
                                    </Trigger>
                                    <Trigger Property="Tag" Value="Faulty">
                                        <Setter Property="Source" Value="Resources/Faulty.png"/>
                                    </Trigger>
                                </Style.Triggers>
                            </Style>
                        </Image.Resources>
                    </Image>
                    <ContentPresenter ContentSource="{Binding Path=PluginName}" Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" Margin="2" HorizontalAlignment="Left"/>
                    <Button/>
                </Grid>
            </DataTemplate>


der code dahinter:
Dim wPlugins As New List(Of PlugItem)
        If IO.Directory.Exists("plugins") Then
            Dim workingPlugins() As String = IO.Directory.GetFiles("plugins")
            For Each File As String In workingPlugins
                If File.EndsWith(".jar") Then
                    wPlugins.Add(New PlugItem() With {.PluginStatus = "Working", .PluginName = File.Replace(".jar", "")})
                End If
            Next
        End If
        InitializeComponent()
        Plugins.ItemsSource = wPlugins

...und hier die klasse für die plugin-items:
Public Class PlugItem

    Dim plugstate As String

    Public Property PluginStatus() As String
        Get
            Return plugstate
        End Get
        Set(ByVal value As String)
            If value = "Working" Xor value = "Disabled" Xor value = "Faulty" Then
                plugstate = value
            Else
                Throw New Exception("Invalid plugin status given!" & vbNewLine & "You can only set:" & vbNewLine & "'Working', 'Disabled' or 'Faulty'!")
            End If
        End Set
    End Property

    Dim plugname As String

    Public Property PluginName() As String
        Get
            Return plugname
        End Get
        Set(value As String)
            plugname = value
        End Set
    End Property

    Public Overrides Function ToString() As String
        Return PluginStatus & "|" & PluginName
    End Function

End Class


zu erwähnen ist auch, dass ich mich nicht wirklich mit datenbindungen so recht auskenne (hab das aus nem blog im inet übernommen). vielleicht hab ich ja etwas übersehn.
0

Anzeige



#2 Mitglied ist offline   ::YC Tech:: 

  • Gruppe: aktive Mitglieder
  • Beiträge: 170
  • Beigetreten: 01. Oktober 11
  • Reputation: 0
  • Geschlecht:Männlich
  • Interessen:An PCs basteln bis der IT kommt :D

geschrieben 01. Juni 2013 - 16:11

problem gelost!

die ausnahme wurde vom contentpresenter (source=pluginname) verursacht. den hab ich durch einem textblock ersetzt.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0