EPLAN 2.9: Beta verfügbar
Die EPLAN 2.9 Beta 1 ist im Support / Downloadbereich verfügbar.
Die EPLAN 2.9 Beta 1 ist im Support / Downloadbereich verfügbar.
Folgende Actions sind laut eplan.help hinzugekommen:
Startet die Artikelauswahl.
Ermöglicht das Registrieren von Add-ons.
Ermöglicht das Deregistrieren von Add-ons.
Ermöglicht das Übersetzen von Texten in einer bestimmten Quellsprache.
Größte Neuerung meiner Meinung nach im Scripting-Bereich ist, dass man nun den ActionCallingContext der Action übergeben kann. Somit ist man nicht mehr auf fixe Parameter eingeschränkt.
Ich nutze sehr gerne das SfDataGrid von Syncfusion. Die Lizenz ist auch super für kleine Unternehmen.
Normalerweise sollte man mit MVVM nicht dazu gezwungen sein die ItemSource neu zu setzen. Es gibt aber ein paar Edgecases da ist es notwendig.
Leider geht dadurch der State vom DataGrid verloren. So werden Gruppen z.B. wieder eingeklappt.
Der super Support von Syncfusion hat mir bei meinem Vorhaben unterstützt. Für dieses Problem hab ich dann eine kleine Extension geschrieben.
Wichtig ist dass AutoExpandGroups = false; gesetzt ist, sonst werden immer alle Gruppen ausgeklappt.
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using Syncfusion.Data;
using Syncfusion.UI.Xaml.Grid;
namespace Suplanus.Test.Extension
{
internal static class SfDataGridExtensions
{
public static void RebindTo(this SfDataGrid dataGrid, object itemSource)
{
// Save state
List<Group> expandedGroups = new List<Group>();
ReadOnlyObservableCollection<object> groups = dataGrid.View?.Groups;
if (groups != null)
{
dataGrid.AutoExpandGroups = false;
foreach (Group group in groups)
{
if (group.IsExpanded)
{
expandedGroups.Add(group);
}
}
}
// Rebind
dataGrid.ItemsSource = null;
dataGrid.ItemsSource = itemSource;
// Set state
if (dataGrid.View?.Groups != null)
{
foreach (Group group in dataGrid.View.Groups)
{
Group isExpandGroup = group;
Group key = expandedGroups.FirstOrDefault(c => c.Key.ToString() == isExpandGroup.Key.ToString());
do
{
if (key != null)
{
dataGrid.ExpandGroup(isExpandGroup);
}
if (isExpandGroup.Groups != null)
{
isExpandGroup = isExpandGroup.Groups[0];
key = expandedGroups.FirstOrDefault(
col => col.Groups[0].Key.ToString() == group.Groups[0].Key.ToString());
}
else
{
isExpandGroup = null;
}
}
while (isExpandGroup != null);
}
}
}
}
}