我正在开发一些WPF应用程序,用C#编写,基于XAML文件,根据MVVM工作方式进行编程。
在编程时,没有什么比F12按钮更容易知道您的信息定义在哪里了,正如您从以下随机源代码中看到的那样:
文件“ClientMaterialService.cs”:
if (OP.Direction == 1) { UIOP.In = true; UIOP.Out = false; }
光标在
OP
上,按F12,结果:文件“ClientMaterialService.cs”,第Unit PO = ...;
Direction
上,按F12,结果:文件“Unit.cs”,第public byte Direction { get; set; }
但它与 XAML 文件中的情况不同,正如您在此处看到的:
<ComboBox x:Name="Cmb_MPNr"
Grid.Row="0"
Grid.Column="1"
SelectedValue="{Binding Unit.MPNr, Mode=TwoWay}" ...
光标在
ComboBox
上,按F12,结果:文件“...\ComboBox.cs”(反编译),行... => OKUnit
上,按F12,结果:文件“Binding.cs”(反编译),第public PropertyPath Path
这不是我想要的!我想知道这个特定的
Unit
是在哪里定义的。 (在我的应用程序中,以前的开发人员有对类和对象使用相同名称的坏习惯,并且由于有很多对象,称为 Unit
,我想确定我正在处理哪一个。我希望F12可以告诉我这一点,但事实并非如此。
有人知道一个简单的解决方法吗? (请不要让我重命名所有对象,这是西西弗斯的劳动:-))
有人知道一个简单的解决方法吗?
与 C# 中的成员不同,
Unit
只是一个字符串,最终 在使用反射在 runtime 中查找时得到评估。编译器不知道该属性是否存在或定义在哪里。
因此 Visual Studio 中没有可用的“解决方法”。如果您知道元素的
DataContext
(您应该知道),您可以轻松搜索此类型的属性。