0

我正在编写一个 Windows 8 应用程序(为我自己),它为一些自动生成的路径生成 g 代码。在生成 g 代码时,我想使用可以自己在应用程序中编写和编辑的文本模板。我认为遵循 {binding path} 表示法是个好主意,所以我的模板可能看起来像

“{binding Gcode.LinearMove} {binding Axis.X} {binding CurrentPoint.X } ....” 在数据绑定后给出“G1 X 90 ...”。

所有对象 Gcode、Axis、CurrentPoint 都可以定义为代码生成器的 DataContext 的一部分。

我目前使用使用 StringBuilder 构建的简单字符串并传递给 ListView 进行显示并使用格式来替换值,但这当然会冻结我在代码中使用的属性并且是限制性的。我玩过使用正则表达式替换的特定模板名称,但替换值再次被冻结在代码中。

我认为使用可编辑模板可以让我更自由地动态选择在运行时使用哪些属性。

所以我的问题是,这是否可以使用现有的 Metro 类和数据绑定的 .net 实现来实现,还是我必须从头开始?请记住,绑定将在不可见和非 UI 控件上。我认为将 Textblocks 用于数千行 gcode 的列表在资源方面将是一件愚蠢的事情,而且我在某处读到应用程序中不提供多重绑定。

艾伦

4

1 回答 1

0

是的,您可以使用 TextBlock 或 RichTextBlock 并将各个运行绑定到您要显示的属性。当后面的代码更改时(只要它正确实现 INotifyPropertyChange),屏幕上的文本应该会按预期更新。

这是一篇关于绑定运行的好小文章:

http://tozon.info/blog/post/2012/10/16/Windows-Store-apps-the-case-of-missing-StringFormat-or-Binding-on-the-Run.aspx

开发支持、设计支持和更多的好处:http: //bit.ly/winappsupport

于 2013-02-18T20:58:57.880 回答