ссылка из xaml на открытый класс в файле класса .cs - PullRequest
2 голосов
/ 27 марта 2010

В моем проекте WPF есть файл RssInfo.cs, в котором у меня есть открытый класс

public class DoubleRangeRule : ValidationRule
{
    public double Min { get; set; }
    public double Max { get; set; }

    public override System.Windows.Controls.ValidationResult Validate(object value,
                                               CultureInfo cultureInfo)
    {
       ...
    }
}

и из моего кода XAML в классе окна WPF я хочу попасть в этот класс DoubleRangeRule ..

<!-- reference to my project, all my files are in the WpfCzytanieRSS namespace -->
xmlns:valRule="clr-namespace:WpfCzytanieRSS;assembly=WpfCzytanieRSS" 

<TextBox Validation.ErrorTemplate="{StaticResource TextBoxErrorTemplate}"
         Name="tbTitle">
  <TextBox.Text>
    <Binding Path="Nazwa" UpdateSourceTrigger="PropertyChanged">
      <Binding.ValidationRules>
        <valRule:DoubleRangeRule Min="0.5" Max="10"/> //error place
      </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>

И я получаю две ошибки:

Ошибка 1

Тег 'DoubleRangeRule' не существует в пространстве имен XML 'clr-namespace: WpfCzytanieRSS; Assembly = WpfCzytanieRSS'.

Ошибка 2

Тип 'valRule: DoubleRangeRule' не найден. Убедитесь, что вы не пропустили ссылку на сборку и что все ссылочные сборки были собраны.

Пожалуйста, помогите добраться до класса DoubleRangeRule !

1 Ответ

2 голосов
/ 27 марта 2010

Это XAML-файл в том же проекте, что и DoubleRangeRule? Если это так, вам нужно удалить раздел assembly= из вашей декларации xmlns. Измените его на:

xmlns:valRule="clr-namespace:WpfCzytanieRSS"

Если нет, то проверьте пространство имен, в котором объявлен класс правила проверки. Например, если вы поместили его в подпапку проекта, Visual Studio по умолчанию добавляет имя папки в виде вложенного пространства имен, например, namespace WpfCzytanieRSS.ValidationRules.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...