Csharp/C#教程:如何使用Expression Blend编辑在Visual Studio中创建的DataTemplate?分享


如何使用Expression Blend编辑在Visual Studio中创建的DataTemplate?

对于那些在实际项目中使用Expression Blend和Visual Studio的人,请帮助我了解如何在日常开发/设计任务中使用Blend和Visual Studio ,这是一个真实的场景:

我在Visual Studio中创建了以下简单的WPF应用程序。 它显示了一个带有DataTemplate的客户对象列表,该对象以简单的橙色框显示客户。

我现在通过使用Expression Blend 将一些pizazz放入这个DataTemplate中

在Expression Blend中打开这个项目,以为我会看到橙色的盒子,我可以改变它的颜色,在鼠标hover它们时创建动画,调整它的大小等等。但是, 我在Expression Blend中看到的只是一个完全空白的盒子

所以我理解:

XAML:

                       

代码背后:

 using System.Windows; using System.Collections.ObjectModel; using System; namespace TestStringFormat234 { public partial class Window1 : Window { public Window1() { InitializeComponent(); DataContext = new CustomerViewModel(); } } //view model public class CustomerViewModel { public ObservableCollection GetAllCustomers { get { ObservableCollection customers = new ObservableCollection(); customers.Add(new Customer { FirstName = "Jim", LastName = "Smith", HireDate = DateTime.Parse("2007-12-31") }); customers.Add(new Customer { FirstName = "Jack", LastName = "Jones", HireDate = DateTime.Parse("2005-12-31") }); return customers; } } } //model public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public DateTime HireDate { get; set; } } } 

我只是想出来,所以请允许我回答我自己的问题。

我阅读了Laurent’s Bugnion上的文章,结果发现我只需要调整上面的代码,这样我就可以在Expression Blend GUI中看到我的ViewModel中的数据,并且能够在Blend中编辑DataTemplate,保存它,以及然后继续在Visual Studio中编辑。

基本上改变是:(1)从代码后面取出DataContext语句,(2)在XAML中添加“本地”命名空间,(3)在XAML中定义本地数据提供者(“TheDataProvider”),(4)绑定到它直接来自ListBox。

以下是完全适用于Expression Blend和Visual Studio的代码:

XAML:

                              

代码背后:

 using System.Windows; using System.Collections.ObjectModel; using System; namespace TestStringFormat234 { public partial class Window1 : Window { public Window1() { InitializeComponent(); } } //view model public class CustomerViewModel { public ObservableCollection GetAllCustomers { get { ObservableCollection customers = new ObservableCollection(); customers.Add(new Customer { FirstName = "Jim", LastName = "Smith", HireDate = DateTime.Parse("2007-12-31") }); customers.Add(new Customer { FirstName = "Jack", LastName = "Jones", HireDate = DateTime.Parse("2005-12-31") }); return customers; } } } //model public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public DateTime HireDate { get; set; } } } 

我在这个问题上有一篇博文: http : //www.robfe.com/2009/08/design-time-data-in-expression-blend-3/

我的post是关于在混合中显示数据不必在运行时显示或甚至创建数据。

如果想让Blend和Visual Studio看到datacontext在设计模式下的含义,可以使用页面上的调试选项进行定义。 比方说,我的页面(在代码隐藏中)将其数据上下文绑定到我的nampespace WP8TestBed中的MainVM,通过将主页面属性的信息通知为d:DataContext,它仅在设计时使用(我可以使用它绑定到它)向导)并且在运行时期间也不会创建视图模型的新实例。

下面是示例,需要所有这些命名空间(d,mc和我的ViewModel(MainVM)所在的本地):

上述就是C#学习教程:如何使用Expression Blend编辑在Visual Studio中创建的DataTemplate?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1011658.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐