【问题标题】:Using wpf datagrid with ironpython and sqlite3将 wpf 数据网格与 ironpython 和 sqlite3 一起使用
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 请在此答案中添加摘要,以防您的文章最终从网络上消失。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    相关资源
    最近更新 更多