Ho una semplice applicazione WPF. Ecco il codice di WPFCome aggiornare il valore di una riga di WPF DataGrid da 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>
e qui è il codice python:
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())
Il comportamento che mi aspetto è che il pulsante di clic, il valore nel DataGrid dovrebbe aggiornare. Quando avvio l'applicazione, una voce è posizionata nella colonna con il valore 1, ma non si aggiorna sul clic del pulsante. MessageBox conferma che il valore è in fase di aggiornamento, ma DataGrid non sta visualizzando il valore aggiornato. Dove sto andando male?