Ich habe eine einfache WPF-Anwendung. Hier ist der WPF-CodeWie aktualisiert man den Wert einer Zeile eines WPF DataGrid von IronPython?
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WpfApplication3" Height="300" Width="300">
<Grid>
<DataGrid x:Name="dg" Margin="0" Height="149" Width="136">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding value}" ClipboardContentBinding="{x:Null}"/>
</DataGrid.Columns>
</DataGrid>
<Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="109,230,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/>
</Grid>
</Window>
und hier wird der Python-Code:
import wpf
from System.Windows import Application, Window, MessageBox
from time import sleep
class MyWindow(Window):
def __init__(self):
self.value = Value()
wpf.LoadComponent(self, 'WpfApplication3.xaml')
self.dg.Items.Add(self.value)
def button_Click(self, sender, e):
self.value.increment()
MessageBox.Show(str(self.value.value))
class Value:
def __init__(self):
self.value = 1
def increment(self):
self.value += 1
if __name__ == '__main__':
Application().Run(MyWindow())
Das Verhalten, das ich erwarte, ist, dass Schaltfläche auf klicken, wird der Wert im Datagrid aktualisieren soll. Wenn ich die Anwendung starte, wird ein Eintrag in der Spalte mit dem Wert 1 platziert, aber beim Klicken auf die Schaltfläche wird er nicht aktualisiert. Die MessageBox bestätigt, dass der Wert aktualisiert wird, aber das DataGrid erkennt nicht, dass der Wert aktualisiert wird. Wo gehe ich falsch?