【发布时间】:2010-10-04 15:49:33
【问题描述】:
我正在尝试弄清楚如何使用 IronPython (2.6) wpf 和 sqlite3(我使用 Ironpython.SQLite.dll)
我对如何使用 wpf 数据网格有些困惑。
谁能帮助我进一步编写代码以填充数据网格
使用此处生成的 sqlite 数据库中的数据。
下面是关于我走了多远的代码...... 第一个 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代码
我的应用程序.py
导入系统
进口nt
导入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)
我是这方面的初学者,可能完全走错了路,但我似乎无法找出什么 或如何填充 itemssource 或 datacontext 或两者兼而有之......无论如何都不能使用上面的注释选项......
【问题讨论】:
标签: sqlite wpf-controls ironpython