Jeff,
Thank you!
Now that you pointed that out, it's easy and works fine.
I guess i was thinking that the code scope would have an implied
reference to things in self... I see I'll just have to be more explicit
Thanks again, back to learning now...
Dave
On 4/27/2012 10:36 AM, Jeff Hardy wrote:
Hi David,
There's a working smaple at
https://github.com/jdhardy/IronPythonSamples/blob/master/PyWpfSample/PyWpfSample.py
that you can check out.
From looking at your code, I think the issue is that you need to use
'self.label1.Content = ...' to reference the controls on the form.
- Jeff
On Fri, Apr 27, 2012 at 10:28 AM, David Bagby<d...@calypsoventures.com> wrote:
Hi,
I’m a bit new to both IronPython and WPF - so of course I find myself trying
to figure out how to make them work together…
(I don’t know where best to ask this question as I don’t know if this is
really a IPY or a WPF or combination question - so if there is a better
group to consult, please tell me a good place to go ask.)
FYI, Software context:
VS 2010
IPY 2.7.2.1
PTVS 1.1.1
For a learning test case, I had VS create the XAML for a window with one
button and one label. The simple goal is to click the button and have the
value in the label increment.
That was easy from a VB WPF app; but I can’t get the same simple action from
a IPY WPF app.
Here is the IPY XAML:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="IPY-WPF-2" Height="300" Width="300">
<Grid>
<Button Content="Button" Height="57" HorizontalAlignment="Left"
Margin="48,26,0,0" VerticalAlignment="Top" Width="116" Click="Button_Click"
DataContext="{Binding}" Name="Button1" />
<Label Content="Label" Height="38" HorizontalAlignment="Left"
Margin="62,147,0,0" VerticalAlignment="Top" Width="101" Name="label1"
DataContext="{Binding ElementName=Label1, Path=Content.Length}" />
</Grid>
</Window>
Both the IPY and VB WPF app Xaml files were created by the VS form editor –
so I’m guessing that the XAML is probably not the issue (but it’s just a
guess).
Here is the IPY code:
import wpf
from System.Windows import Application, Window
from System.Windows.Controls import Button, Label
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'IPY_WPF_2.xaml')
#label1.Content = 1
def Button_Click(self, sender, e):
#label1.Content += 1
pass
if __name__ == '__main__':
Application().Run(MyWindow())
Any attempt I make to execute either of the commented out lines that
reference label1 cause a fault.
What is the proper way to reference a XAML object from IPY code in a WPF
app?
Obviously, I’m having trouble referencing a control defined in XAML from the
IPY code.
I suspect I’m missing something that should be obvious to me but isn’t, and
I’d appreciate a pointer as to what I need to do/learn.
FYI – here the equiv VB WFP app that worked first time:
Here is the VB XAML:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Button" Height="74" HorizontalAlignment="Left"
Margin="83,31,0,0" Name="Button1" VerticalAlignment="Top" Width="162"
DataContext="{Binding ElementName=Button1}" />
<Label Content="Label" Height="45" HorizontalAlignment="Left"
Margin="87,161,0,0" Name="Label1" VerticalAlignment="Top" Width="152" />
</Grid>
</Window>
Here is the VB code:
Class MainWindow
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Label1.Content = 1
End Sub
Private Sub Button1_Click(sender As System.Object, e As
System.Windows.RoutedEventArgs) Handles Button1.Click
Label1.Content += 1
End Sub
End Class
The VB WPF app works as expected.
Dave
_______________________________________________
Ironpython-users mailing list
Ironpython-users@python.org
http://mail.python.org/mailman/listinfo/ironpython-users
_______________________________________________
Ironpython-users mailing list
Ironpython-users@python.org
http://mail.python.org/mailman/listinfo/ironpython-users