Csharp/C#教程:如何使用StaticResource在XAML中定义DataContext分享


如何使用StaticResource在XAML中定义DataContext

我想通过XAML中的静态资源声明一个DataContext,作为Northwind数据库中Customers的绑定。 我可以在代码(C#)中轻松完成此操作,但想学习如何在XAML中完成。 我已经尝试了所有可以找到的例子,但它们都不适合我。 我认为问题出在我标记为[Option1]和[Option2]的两行XAML代码行中。 你能澄清一下这个语法究竟应该是什么吗?

C#

namespace DataGridEF { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); bModel1 bNorthWind = new bModel1(); //this.DataContext = bNorthWind; bNorthWind.GetCustomers(); } } } namespace DataGridEF { public class bModel1 { List _Customers; public List Customers { get { return _Customers; } set { _Customers = value; } } public void GetCustomers() { NorthwindEntities NorthWind = new NorthwindEntities(); var CustomerQ = from cust in NorthWind.Customers select cust; _Customers = CustomerQ.ToList(); } } } 

XAML

                

如果为了避免使问题与Entities Framework和MSSQL NorthWind数据库复杂化,那么在Exampleproject“ WPF / MVVM快速入门教程 ”的示例2示例代码中提供了很好的说明。

对于您的XAML,您应该将其开头更改为:

         

这种方法的另一种变体可以在“在代码中设置DataContext而不是XAML的优势是什么?”中看到。 , 那个部分:

     

DataContext定义从代码隐藏迁移到XAML与StaticResourceDynamicResource的使用无关。 请参阅: WPF中StaticResource和DynamicResource之间的区别是什么? 可能在codeproject WPF中更好地解决:StaticResource与DynamicResource

相关,有用和进一步阅读:

我更喜欢将键设置为静态字符串 – 如果您可以轻松避免,WPF具有足够的魔术字符串而无需将自己转移到重构角落。

App.xaml

 xmlns:viewModels="clr-namespace:MyAppNamespace.ViewModels" xmlns:local="clr-namespace:tvCADdesktop" x:Name="App" ...  

App.xaml.cs

 public static readonly string MainVmResourceKey = "MainVm"; 

在我的各种Control.xaml

        

请注意UserControl部分是您要将ViewModel应用于的任何类型。

上述就是C#学习教程:如何使用StaticResource在XAML中定义DataContext分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

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

ctvol管理联系方式QQ:251552304

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

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

精彩推荐