如何在 Ironpython 中动态生成 WPF 元素



我正在使用Ironpython 2.7。是否可以基于运行时找到的数据动态生成 wpf 窗口的元素?该程序将调用数据库并加载参数,我想为每个加载的参数生成一个文本框(和组合框)(例如,如果加载了 4 个参数,窗口将显示 4 个文本框和相应的组合框)。

这是我可以用物业装饰器做的事情吗?我是否必须动态生成 xaml 才能执行此操作?例如:

    import wpf
    from System import Windows.Window
    parameters = loadfromdatabase(args)....
    xaml_filename = "program.xaml"
    textBox_list = ""
    cnt = 0
    for param in parameters:
        textBox_list += '<TextBox x:Name={} HorizontalAlignment="Left" Height="21" Width = "52" Margin="60,{},0,0" VerticalAlignment="Top"/>n'.format(param,60+26*cnt)
        cnt += 1
    xaml_string = "<Window n<Grid>n" + textBox_list + "</Grid>n</Window>"
    with open(xaml_filename, "w") as f:
        f.write(xaml_string)
    class MyWindow(Window):
        def __init__(self):
            wpf.LoadComponent(self, xaml_filename)
    if __name__ == '__main__':
        Application().Run(MyWindow())

您将在 IronPython 中动态生成 WPF 元素,就像在 C# 中一样。有关如何在 C# 中执行此操作,请参阅 WPF:如何在动态创建的 WPF 窗口中动态添加控件。

最新更新