gpt4 book ai didi

sqlite - 将 wpf 数据网格与 ironpython 和 sqlite3 一起使用

转载 作者:行者123 更新时间:2023-12-03 18:40:48 25 4
gpt4 key购买 nike

我想弄清楚如何使用 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 或两者......无论如何都不是上面的注释选项......

最佳答案

您必须将数据加载到绑定(bind)到数据网格的类实例中。这是我的article关于 IronPython 中的 WPF 数据绑定(bind)。将其转换为使用 DataGrid 应该很容易;-)

关于sqlite - 将 wpf 数据网格与 ironpython 和 sqlite3 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com