![]() |
Databinding an ein Unterobjekt
Hallo,
ich möchte mich mal wieder vertrauensvoll an euch wenden. Ich habe eine hexbox (OpenSource Control) auf meinem Winfoems-Formular liegen und möchte gerne databindinding betreiben. Die hexboy soll also an ein byte-Array geknüpft werden. "Einfach zuweisen" geht leider nicht, da die hexbox ihre Daten über einen ByteProvider bekommt. Ein bisschen Code:
Code:
Das geht aber so natürlich nicht, weil "ByteProvider.Bytes" keine gültige Eigenschaft ist. Der ByteProvider hat leider auch kein DataBinding implementiert.
public partial class MainForm : Form
{ PacketWrapper Command = new PacketWrapper(); //BindingSource BytesDataSource; // vorheriger Versuch private void MainForm_Load(object sender, EventArgs e) { var dbp = new DynamicByteProvider(new byte[] { 123, 42 }); hexBox1.ByteProvider = dbp; hexBox1.DataBindings.Add("ByteProvider.Bytes", Command, "Payload"); // Das hätte ich gerne Command.Source = 1; Command.Payload = new byte[] { 120, 43 }; // und public class PacketWrapper { // ..... public byte[] Payload { get; set; } } Ich kann im gesamten Quellcode Änderungen vornehmen. Aber da ich noch nie selbst DataBinding implementiert habe, hier meine Frage: Wie kann ich mit möglichst wenig Code die beiden Properties verknüpfen? |
AW: Databinding an ein Unterobjekt
Okay, ich konnte das problem inzwischen lösen. Ich habe in der Hexbox eine Property erstellt, an die ich binden kann:
Code:
Es gibt noch Probleme beim Weg Objekt > GUI aber das wird schon irgendwie gehen...
[Bindable(true)]
public byte[] Bytes { get { if (ByteProvider is DynamicByteProvider) return (ByteProvider as DynamicByteProvider).Bytes.ToArray(); else throw new InvalidOperationException(); } set { if (ByteProvider is DynamicByteProvider) { (ByteProvider as DynamicByteProvider).Bytes.Clear(); (ByteProvider as DynamicByteProvider).Bytes.AddRange(value); } else throw new InvalidOperationException(); } } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz