Создал простую вьюмодель:
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace GuiTest.Windows.TestBindingWindow {
internal class TestBindingWindowContext : INotifyPropertyChanged {
private string _Login = String.Empty;
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public string Login
{
get => _Login;
set {
if (value != _Login) {
_Login = value;
NotifyPropertyChanged();
}
}
}
}
}
Пробую подключить ее во вью:
<Window x:Class="GuiTest.Windows.TestBindingWindow.TestBindingWindowView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ctx="clr-namespace:GuiTest.Windows.TestBindingWindow"
mc:Ignorable="d"
Title="TestBindingWindowView" Height="450" Width="800">
<Window.DataContext>
<ctx:TestBindingWindowContext/>
</Window.DataContext>
<Grid>
</Grid>
</Window>
Но получаю ошибку:
Error XDG0008 The name "TestBindingWindowContext" does not exist in the namespace "clr-namespace:GuiTest.Windows.TestBindingWindow".
Я как-то неправильно работаю с неймспейсами?
UPD. Почему-то проблема решается сразу после первой сборки приложения. Т.е. я запускаю сборку, несмотря на наличие ошибки в ErrorList и все собирается успешно, привязки начинают работать, ошибка исчезает. Как это работает под капотом?