Пользовательский класс не работает с x:Bind в UWP
У меня есть следующий класс:
namespace MainProject.Model
{
public class ModelObject: INotifyPropertyChanged
{
public int Value{ get; set; }
}
}
Я пытаюсь использовать его в моем шаблоне с x:Bind
:
<DataTemplate x:Key="ListViewItemTemplate" x:DataType="model:ModelObject">
<my:CustomSelector Grid.Column="1" ActualValue="{x:Bind Value}" />
</DataTemplate>
При сборке я всегда получаю это сообщение:
Синтаксическая ошибка XBF '0x09C4': свойство не найдено. Проверьте, существует ли свойство, заданное вами в XAML, в минимальной версии платформы, указанной в проекте (TargetPlatformMinVersion)
В соответствии с этим, я должен установить минимальную версию Windows, и я сделал это:
Я также попытался создать локального потомка в основном проекте вместо модельного проекта, чтобы сделать пространства имен одинаковыми:
namespace MainProject.UWP
{
public class UWPModelObject: ModelObject
{
}
}
Что еще я должен сделать?
1 ответ
Попробуй это:
public class ModelObject : INotifyPropertyChanged
{
public int DaValue
{
get { return _daValue; }
set
{
_daValue = value;
OnPropertyChanged();
}
}
private int _daValue;
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Это правильный тип int? Или вы должны использовать строку!?
РЕДАКТИРОВАТЬ: В MainPage.cs установить текст данных следующим образом:
public MainPage()
{
this.InitializeComponent();
ModelObject modelObject = new ModelObject();
DataContext = modelObject;
}