Hallo zusammen,
jedes Property einer bestimmten Klasse wird nur einen Wert enthalten. Jeder Wert soll jeweils an eine Textbox gebunden sein. Und bevor ich es vergesse; die Textboxen sollen später in einem Stackpanel sitzen.
Alle Versuche schlugen fehl.
XAML
Spoiler anzeigen
Code:
Spoiler anzeigen
Klasse
Spoiler anzeigen
Der hier gezeigte Code ist nur der aktuelle Versuch; einer von vielen... Kann ja nicht alle Varianten posten.
Ich weiß nicht einmal, ob der Ansatz über die Collection korrekt ist. Eigentlich ist eine Collection ja Quatsch, wenn ich nur einen Eintrag pro Property hab.
Im DataGrid lässt sich der Wert anzeigen. Über die Bindung an Itemssource werden die Werte in den Spalten angezeigt. (das Grid dient nur Testzwecken, und soll im richtigen Projekt natürlich nicht zusätzlich drin sein)
Im Netz findet man natürlich auch Lösungne, aber irgendwie nie das Passende...
Kann mir hier jemand helfen?
Gruß
eddi
jedes Property einer bestimmten Klasse wird nur einen Wert enthalten. Jeder Wert soll jeweils an eine Textbox gebunden sein. Und bevor ich es vergesse; die Textboxen sollen später in einem Stackpanel sitzen.
Alle Versuche schlugen fehl.
XAML
XML-Quellcode
- <Window x:Class="MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:local="clr-namespace:Textboxen_binden"
- mc:Ignorable="d"
- Title="MainWindow" Height="290" Width="800">
- <Grid>
- <DataGrid ItemsSource="{Binding Dings_Coll}" Width="500" Height="70" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="20"/>
- <TextBox Text="{Binding Eins}" Width="500" Height="25"/>
- </Grid>
- </Window>
Code:
VB.NET-Quellcode
- Imports System.Collections.ObjectModel
- Imports System.Runtime.CompilerServices
- Imports System.ComponentModel
- Class MainWindow
- Implements INotifyPropertyChanged 'benachrichtigt die Oberfläche (View) bei Änderung eines Propertys (Datendings)
- Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
- Private Sub raisepropertychanged(<CallerMemberName> Optional ByVal prop As String = "") 'wird bei Änderung in den Propertys aufgerufen
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(prop))
- End Sub
- Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
- Dings_Coll = New ObservableCollection(Of Stackpanel_Klasse)
- Dings_Coll.Add(New Stackpanel_Klasse("WFAFAWWA"))
- Me.DataContext = Me
- End Sub
- Private _Dings_Coll As ObservableCollection(Of Stackpanel_Klasse)
- Public Property Dings_Coll() As ObservableCollection(Of Stackpanel_Klasse)
- Get
- Return _Dings_Coll
- End Get
- Set(ByVal value As ObservableCollection(Of Stackpanel_Klasse))
- _Dings_Coll = value
- End Set
- End Property
- End Class
Klasse
VB.NET-Quellcode
- Imports System.ComponentModel
- Imports System.Runtime.CompilerServices
- 'Namespace Stackpanel_ns
- Public Class Stackpanel_Klasse
- Implements INotifyPropertyChanged 'benachrichtigt die Oberfläche (View) bei Änderung eines Propertys
- Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged 'wird automatisch bei der Implementierung des INotifyPropertyChanged eingefügt
- Private Sub raisepropertychanged(<CallerMemberName> Optional ByVal prop As String = "") 'wird bei Änderung in den Propertys aufgerufen
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(prop))
- End Sub
- Public Sub New(eins As String)
- Me.Eins = eins
- End Sub
- Private _eins As String
- Public Property Eins() As String
- Get
- Return _eins
- End Get
- Set(ByVal value As String)
- _eins = value
- raisepropertychanged()
- End Set
- End Property
- Private _zwei As String
- Public Property Zwei() As String
- Get
- Return _zwei
- End Get
- Set(ByVal value As String)
- _zwei = value
- raisepropertychanged()
- End Set
- End Property
- Private _drei As String
- Public Property Drei() As String
- Get
- Return _drei
- End Get
- Set(ByVal value As String)
- _drei = value
- raisepropertychanged()
- End Set
- End Property
- Private _vier As String
- Public Property Vier() As String
- Get
- Return _vier
- End Get
- Set(ByVal value As String)
- _vier = value
- raisepropertychanged()
- End Set
- End Property
- End Class
- 'End Namespace
Der hier gezeigte Code ist nur der aktuelle Versuch; einer von vielen... Kann ja nicht alle Varianten posten.
Ich weiß nicht einmal, ob der Ansatz über die Collection korrekt ist. Eigentlich ist eine Collection ja Quatsch, wenn ich nur einen Eintrag pro Property hab.
Im DataGrid lässt sich der Wert anzeigen. Über die Bindung an Itemssource werden die Werte in den Spalten angezeigt. (das Grid dient nur Testzwecken, und soll im richtigen Projekt natürlich nicht zusätzlich drin sein)
Im Netz findet man natürlich auch Lösungne, aber irgendwie nie das Passende...
Kann mir hier jemand helfen?
Gruß
eddi