Я пытаюсь выяснить, как заставить использовать IronPython (2.6) wpf и sqlite3 (я использую Ironpython.SQLite.dll)
Я немного застрял в том, как использовать сетку данных wpf.
Может ли кто-нибудь еще помочь мне в том, как кодировать, чтобы заполнить сетку данных
данными из базы данных sqlite, сделанной здесь.
Ниже приведен код того, какдалеко я получил ... 1-й файл Python XAML
<Grid>
<DataGrid Name="mydatagrid" ItemsSource="{Binding}" ColumnWidth="300" RowHeight="20" AutoGenerateColumns="True" Margin="12,370,242,25" GridLinesVisibility="All" CanUserResizeRows="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding}" Header="Header" />
<DataGridTextColumn Header="Header" />
<DataGridTextColumn Header="Header" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
Ant, а затем ниже здесь код Python
myapp.py import sys import nt import clr
clr.AddReference('PresentationFramework')
from System.IO import FileMode, FileStream
from System.Windows import Application
from System.Windows.Markup import XamlReader
stream = FileStream('Myxaml.xaml', FileMode.Open)
window = XamlReader.Load(stream)
window.Title='My Program'
sys.path.append(nt.getcwd())
clr.AddReferenceToFile("IronPython.SQLite.dll")
sys.path.append("C:\Program Files (x86)\IronPython 2.6 for .NET 4.0\Lib")
import os
import _sqlite3
from _sqlite3 import *
DB_NAME = 'mydb.s3db'
if not os.path.exists(DB_NAME):
#create new DB if not exist,
con = _sqlite3.connect(DB_NAME)
con.execute(''' CREATE TABLE [mytable]
(
[key] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[desc] NVARCHAR(30) NULL,
[count1] FLOAT DEFAULT '0' NULL,
[count2] FLOAT DEFAULT '0' NULL
)''')
con.execute('''insert into mytable (desc,count1,count2) values ("part1",1.4,10)''')
con.execute('''insert into mytable (desc,count1,count2) values ("part2",2.4,20)''')
con.execute('''insert into mytable (desc,count1,count2) values ("part3",3.4,30)''')
con.execute('''insert into mytable (desc,count1,count2) values ("part4",4.4,40)''')
con.execute('''insert into mytable (desc,count1,count2) values ("part5",5.4,50)''')
con.execute('''insert into mytable (desc,count1,count2) values ("part6",6.4,60)''')
con.commit()
else:
#use existing DB
con = _sqlite3.connect(DB_NAME)
grid1 = window.FindName('mydatagrid')
cur=con.cursor()
cur.execute("SELECT * FROM mytable")
#grid1.ItemsSource=cur.fetchone()
#grid1.DataContext=cur.fetchall()
#print cur.fetchall()
app = Application()
app.Run(window)
Ястартер в этом и может быть совершенно не на том пути, но я не могу выяснить, что или как заполнить источник элемента или текстовый текст или и то, и другое ... в любом случае не с указанными выше параметрами комментирования ......