Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Data binding with lua table

19 views
Skip to first unread message

Michael Gerbracht

unread,
May 12, 2013, 5:50:22 AM5/12/13
to
Hallo,

ich bin gerade dabei ein Programm, dass in lua geschrieben wurde, unter .net
zum Laufen zu bekommen. Im lua Code ist eine zweidimensionale Tabelle
definiert, die ich gerne in einem Fenster als DataGridView anzeigen w�rde.
Der generelle Zugriff auf die Tabelle funktioniert, ich kann die Werte der
Zellen auslesen. Ich habe zus�tzlich noch einen Button eingebaut, der die
Werte in der Tabelle auf Knopfdruck spiegelt.

Ich wei� leider nicht, wie ich die Werte im DataGridView anzeigen und bei
�nderungen an der Tabelle auch die Anzeige updaten kann. Ich habe es hier mit
DataBinding probiert, wenn es auch anders/einfacher geht w�re es mir nur
recht.

Wie man am Beispielcode sieht, habe ich nicht viel Erfahrung mit C#, so muss
im Beispiel auch noch der Pfad zur lua Datei angepasst werden, da ich nicht
wei�, wie man den relativen Pfad so angibt, dass es functioniert - aber das
ist hier nur das kleinere Problem ;-)

Ich habe das Beispielprojekt hier hochgeladen:
http://rapidshare.com/files/2917543179/DataBindingTest.zip

namespace DataBindingTest
{
public partial class Form1 : Form
{
// Define the lua scripting engine.
private readonly Lua m_luatest = new LuaInterface.Lua();

/// <summary>
/// Returns a reference to the scripting engine instance.
/// </summary>
internal LuaInterface.Lua luatest
{
get { return m_luatest; }
}

public Form1()
{
InitializeComponent();
ini_luainterface();

LuaTable tab = luatest.GetTable("Table"); // get access to table
defined in lua code
LuaTable tab2 = (LuaTable)tab[6]; // column 6
Console.WriteLine(tab2[8]); // cell at row 8

dataGridView1.DataSource = tab; //bining to luatable
}

private void ini_luainterface()
{
luatest["winform"] = this;
luatest.DoFile(@"DataBindingTest\lib\luatabletest.lua"); //change
path to the projects lib/luatabletest.lua
}

private void button1_Click(object sender, EventArgs e)
{
luatest.DoString("invert()");
LuaTable tab = luatest.GetTable("Table"); // get access to table
defined in lua code
LuaTable tab2 = (LuaTable)tab[6];
Console.WriteLine(tab2[8]);
}
}
}

Vielen Dank!
Michael Gerbracht

--
Please replace "nospam" by "m.gerbracht" when replying by mail
0 new messages