LookupGrid: version 0.2.0.0

This commit is contained in:
Jonathan Jenne
2019-08-29 11:12:59 +02:00
parent c9e0d8cec1
commit ba1806466d
6 changed files with 59 additions and 42 deletions

View File

@@ -16,10 +16,20 @@ Public Class LookupControl2
Public Delegate Sub SelectedValuesChangedHandler(sender As Object, SelectedValues As List(Of String))
Public Event SelectedValuesChanged As SelectedValuesChangedHandler
Public Property MultiSelect As Boolean
Public Property AllowAddNewValues As Boolean
Public Property PreventDuplicates As Boolean
Public Property DataSource As DataTable
Public Property MultiSelect As Boolean
Get
Return _Multiselect
End Get
Set(value As Boolean)
SetDropdownButtonEnabled(value)
_MultiSelect = value
End Set
End Property
Public Property SelectedValues As List(Of String)
Get
Return _SelectedValues
@@ -28,6 +38,7 @@ Public Class LookupControl2
UpdateSelectedValues(value)
End Set
End Property
Public Overloads Property [ReadOnly] As Boolean
Get
Return _ReadOnly
@@ -47,8 +58,10 @@ Public Class LookupControl2
Private Const TEXT_N_RECORDS = "{0} Datensätze ausgewählt"
Private _SelectedValues As New List(Of String)
Friend WithEvents fProperties As RepositoryItemGridLookUpEdit
Friend WithEvents fPropertiesView As DevExpress.XtraGrid.Views.Grid.GridView
Private _MultiSelect As Boolean
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.Grid.GridView
Private _ReadOnly As Boolean = False
Shared Sub New()
@@ -183,31 +196,6 @@ Public Class LookupControl2
Return RepositoryItemLookupControl2.CustomEditName
End Get
End Property
Private Sub InitializeComponent()
Me.fProperties = New DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit()
Me.fPropertiesView = New DevExpress.XtraGrid.Views.Grid.GridView()
CType(Me.fProperties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.fPropertiesView, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'fProperties
'
Me.fProperties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.fProperties.Name = "fProperties"
Me.fProperties.PopupView = Me.fPropertiesView
'
'fPropertiesView
'
Me.fPropertiesView.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
Me.fPropertiesView.Name = "fPropertiesView"
Me.fPropertiesView.OptionsSelection.EnableAppearanceFocusedCell = False
Me.fPropertiesView.OptionsView.ShowGroupPanel = False
CType(Me.fProperties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.fPropertiesView, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
End Class
<UserRepositoryItem("RegisterLookupControl2")>

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("0.0.1.0")>
<Assembly: AssemblyVersion("0.0.2.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -10,6 +10,7 @@ Public Class frmLookupGrid
Public Property SelectedValues As List(Of String)
Private dataColumn As Integer
Private dataSourceTemp As DataTable
Private view As GridView
Private grid As GridControl
@@ -17,25 +18,27 @@ Public Class frmLookupGrid
view = viewLookup
grid = gridLookup
If DataSource Is Nothing Then
Exit Sub
End If
' Original Datasource soll nicht verändert werden
dataSourceTemp = DataSource.Copy()
If MultiSelect Then
If Not DataSource.Columns.Contains("SELECTED") Then
If Not dataSourceTemp.Columns.Contains("SELECTED") Then
Dim selectedColumn = New DataColumn() With {
.ColumnName = "SELECTED",
.DataType = GetType(Boolean),
.DefaultValue = False
}
DataSource.Columns.Add(selectedColumn)
.ColumnName = "SELECTED",
.DataType = GetType(Boolean),
.DefaultValue = False
}
dataSourceTemp.Columns.Add(selectedColumn)
selectedColumn.SetOrdinal(0)
End If
End If
' Datasource setzen
grid.DataSource = DataSource
grid.DataSource = dataSourceTemp
' Anzeige Eigeschaften setzen
view.OptionsFind.AlwaysVisible = True
@@ -71,7 +74,9 @@ Public Class frmLookupGrid
' Focus auf Find panel setzen
view.ShowFindPanel()
Me.BringToFront()
' Spaltenbreite anpassen
view.BestFitColumns()
End Sub
Private Sub SyncItemsWithView(view As GridView)
@@ -195,6 +200,6 @@ Public Class frmLookupGrid
End Sub
Private Sub frmLookupGrid_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Me.BringToFront()
BringToFront()
End Sub
End Class