Python nnet проблема с получением DataGrid для работы - PullRequest
2 голосов
/ 08 марта 2020

Я пытаюсь добавить DataGrid в проект, используя pytho nnet, записанное в python. Ссылка на список ниже:

pythonnet_datagrid.py

import os
import sys
sys.path.append(os.getcwd())

import clr
clr.AddReference('wpf\PresentationFramework') 
from System import String
from System.IO import StreamReader
from System.Threading import ApartmentState, Thread, ThreadStart
from System.Windows import Application, LogicalTreeHelper, Window
from System.Windows.Markup import XamlReader

clr.AddReference('System.Collections')
from System.Windows.Controls import *
from System.Collections.Generic import *
from System.Windows.Data import Binding

class MyData(object):
    def __init__(self, name):
        self.name = name

class MyWindow(Window):
    def __init__(self):
        stream = StreamReader('example.xaml')
        window = XamlReader.Load(stream.BaseStream)

        TestDataGrid = LogicalTreeHelper.FindLogicalNode(window, "TestDataGrid")

        items = []
        items.append(MyData("Sam"))
        items.append(MyData("Bob"))

        TestDataGrid.ItemsSource = items

        Application().Run(window)  


if __name__ == '__main__':
    thread = Thread(ThreadStart(MyWindow))
    thread.SetApartmentState(ApartmentState.STA)
    thread.Start()
    thread.Join()

example.xaml

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        Title="Gaiaform" Height="600" Width="800">
    <Grid>
        <DataGrid Name="TestDataGrid" />
    </Grid>
</Window>

Я запускаю код и получите ошибку:

'list' value cannot be converted to System.Collections.IEnumerable

Я использовал тип списка c# с объектом MyData внутри, и он жаловался на тип (ы). Возможно, я где-то допускаю простую ошибку, но после нескольких дней попыток ответить на другие вопросы, связанные с переполнением стека, такие как Невозможно заполнить сетку данных WPF с использованием Python, думаю, мне нужен более опытный совет.

Заранее спасибо за любую помощь.

...