我是否可以使用现有的metro类来创建未连接到可见ui控件的可绑定字符串

时间:2013-02-15 18:15:21

标签: data-binding windows-8

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

“{绑定Gcode.LinearMove} {绑定Axis.X} {绑定CurrentPoint.X} ....” 数据绑定后的“G1 X 90 ......”。

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

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

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

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

艾伦

1 个答案:

答案 0 :(得分: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