x: FieldModifier недействителен для языка C #? - PullRequest
3 голосов
/ 22 февраля 2011

Когда я применяю x: FieldModifier к своему элементу управления WPF, например:

<TextBox x:Name="textBox1" x:FieldModifier="Public"/>

visual studio (пробовал в 2008 и 2010 годах) выдает мне следующую ошибку:

x: FieldModifier недействителен для языка C #

Как я могу решить эту проблему?

Редактировать: Извините, я хочу сделать его общедоступным ...

Ответы [ 2 ]

6 голосов
/ 22 февраля 2011

используйте строчные буквы '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>

2 голосов
/ 22 февраля 2011

Вы уверены, что на самом деле нужно FieldModifier?Что произойдет, если вы его не включите?

С документация :

x: FieldModifier не имеет отношения к объявлению общего уровня доступа классаили его члены.Это относится только к поведению XAML-обработки, когда конкретный объект XAML, являющийся частью производства XAML, обрабатывается и становится объектом, который потенциально доступен в графе объектов приложения.По умолчанию ссылка на поле для такого объекта остается закрытой, что не позволяет потребителям элемента управления напрямую изменять граф объекта.Вместо этого ожидается, что управляющие потребители изменят граф объектов с помощью стандартных шаблонов, которые активируются моделями программирования, например путем получения корня макета, коллекций дочерних элементов, выделенных открытых свойств и т. Д.

...