x:FieldModifier 对 C# 语言无效?
Posted
技术标签:
【中文标题】x:FieldModifier 对 C# 语言无效?【英文标题】:x:FieldModifier is not valid for the language C#? 【发布时间】:2011-02-22 16:07:37 【问题描述】:当我将 x:FieldModifier 应用于我的 WPF 控件时,例如:
<TextBox x:Name="textBox1" x:FieldModifier="Public"/>
visual studio(在 2008 年和 2010 年尝试过)给我以下错误:
x:FieldModifier 对 语言 C#
我该如何解决这个问题?
编辑:抱歉,我想公开...
【问题讨论】:
可能是个愚蠢的问题,但你有xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
吗?
@***Exception,是的,我确实有那行。
使用“公共”而不是“公共”,请参阅下面的答案
【参考方案1】:
使用小写“public”而不是“Public”
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBox Name="TEst" x:FieldModifier="public" Text="nothing" />
</Grid>
【讨论】:
谢谢,我们花了半个小时在这上面,不知怎的,我们确实相信我们是从小写的“p”开始的……但现在它可以工作了!非常感谢!【参考方案2】:你确定你真的需要FieldModifier
吗?如果不包含它会怎样?
来自the documentation:
x:FieldModifier 与声明类或其成员的一般访问级别无关。当作为 XAML 产品的一部分的特定 XAML 对象被处理并成为可能在应用程序的对象图中可访问的对象时,它仅与 XAML 处理行为相关。默认情况下,此类对象的字段引用是私有的,这样可以防止控制使用者直接修改对象图。相反,控制使用者应该使用编程模型启用的标准模式来修改对象图,例如通过获取布局根、子元素集合、专用公共属性等。
【讨论】:
以上是关于x:FieldModifier 对 C# 语言无效?的主要内容,如果未能解决你的问题,请参考以下文章