我在VS社区2017中使用IronPython。我有一个奇怪的问题,我不明白,我很确定很简单,但找不到其他任何人,这让我更加困惑
我有这个非常简单的代码来尝试操作xaml中定义的框中的文本值。
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'WpfApplication1.xaml')
win = MyWindow()
win.Test = win.FindName('test')
win.Test.Text = 'Hello, World'
Application().Run(win)
XAML
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WpfApplication1" Height="300" Width="420.408">
<TextBox x:Name="Test" MinWidth="100" Margin="14,79,98,155"/>
</Window>
显然这并没有做任何有趣的事情,而我只是想学习,但这个非常基本的挂断对我没有任何意义。
*我想将XAML与上面的python分开,但这个网站上的编辑器超出了奇怪的范围。
答案 0 :(得分:1)
我弄明白了这个问题。程序错了。不习惯在VS社区中调试,不像VBA那样直观,这是我最常用的。我确定这可能是由于默认设置,试图弄清楚如何让它提供比它更多的反馈,因为我在错误列表上显示没有错误,这显然是不对的。
所以错误是我试图将win.FindName('test')分配给win.Test。我在其他地方的网站上看到过这样的东西,并且在此之前也有问题,所以我不知道该尝试什么,但现在我知道我可以通过几种不同的方式做到这一点
1)测试= win.FindName('测试')(在开始时不包括胜利)
Test.Text ='Hello,World'
或者,更简单
2)win.Test.Text ='Hello,World'
我觉得我之前尝试过第二次,但它现在正在工作,所以我确定还有其他东西被打破了。
当前工作代码
import wpf
from System.Windows import Application, Window
class MyWindow(Window):
def __init__(self):
wpf.LoadComponent(self, 'WpfApplication1.xaml')
win = MyWindow()
Test = win.FindName('Test')
Test.Text = 'Hello, World'
Application().Run(win)