C# MVVM绑定对象的属性
绑定有问题,如果我绑定字符串类型属性,一切正常,但是如果我试图绑定视图中的对象属性,属性xaml不会上传 没有任何错误或警告 更新模型 型号:C# MVVM绑定对象的属性,c#,mvvm,xamarin.forms,prism,C#,Mvvm,Xamarin.forms,Prism,绑定有问题,如果我绑定字符串类型属性,一切正常,但是如果我试图绑定视图中的对象属性,属性xaml不会上传 没有任何错误或警告 更新模型 型号: public class Part : BindableObject { public int Id { get; set; } public string Brand { get; set; } public string _BrandImage; public string BrandImage {
public class Part : BindableObject
{
public int Id { get; set; }
public string Brand { get; set; }
public string _BrandImage;
public string BrandImage
{
get { return _BrandImage; }
set
{
_BrandImage = value;
OnPropertyChanged();
}
}
public string _Name;
public string Name
{
get { return _Name; }
set
{
_Name = value;
OnPropertyChanged();
}
}
public string Article { get; set; }
public string Mfg { get; set; }
public string Image { get; set; }
public string Description { get; set; }
public List<Offer> Offers { get; set; }
};
return result;
}
}
您需要继承'BindableObject',并将在视图中绑定的属性的setter'set{}'中更改的属性通知视图。我已经在下面修改了Name属性的代码,您可以根据其他字段的要求进行更改
public class Part : BindableObject
{
public int Id { get; set; }
public string Brand { get; set; }
public string BrandImage { get; set; }
private string _Name;
public string Name
{
get { return _Name; }
set
{
_Name = value;
OnPropertyChanged();
}
}
public string Article { get; set; }
public string Mfg { get; set; }
public string Image { get; set; }
public string Description { get; set; }
public List<Offer> Offers { get; set; }
}
公共类部分:BindableObject
{
公共int Id{get;set;}
公共字符串品牌{get;set;}
公共字符串BrandImage{get;set;}
私有字符串\u名称;
公共字符串名
{
获取{return\u Name;}
设置
{
_名称=值;
OnPropertyChanged();
}
}
公共字符串项目{get;set;}
公共字符串制造{get;set;}
公共字符串图像{get;set;}
公共字符串说明{get;set;}
公共列表提供{get;set;}
}
您需要继承'BindableObject',并通知视图在setter'set{}'中为视图中绑定的属性更改的属性。我已经在下面修改了Name属性的代码,您可以根据其他字段的要求进行更改
public class Part : BindableObject
{
public int Id { get; set; }
public string Brand { get; set; }
public string BrandImage { get; set; }
private string _Name;
public string Name
{
get { return _Name; }
set
{
_Name = value;
OnPropertyChanged();
}
}
public string Article { get; set; }
public string Mfg { get; set; }
public string Image { get; set; }
public string Description { get; set; }
public List<Offer> Offers { get; set; }
}
公共类部分:BindableObject
{
公共int Id{get;set;}
公共字符串品牌{get;set;}
公共字符串BrandImage{get;set;}
私有字符串\u名称;
公共字符串名
{
获取{return\u Name;}
设置
{
_名称=值;
OnPropertyChanged();
}
}
公共字符串项目{get;set;}
公共字符串制造{get;set;}
公共字符串图像{get;set;}
公共字符串说明{get;set;}
公共列表提供{get;set;}
}
从模型中删除此属性,这会有所帮助
public List<Offer> Offers { get; set; }
公共列表提供{get;set;}
从模型中删除此属性,这会有所帮助
public List<Offer> Offers { get; set; }
公共列表提供{get;set;}
行Part=Part.GetPartById()代码>不正确-此时零件将为空。还有:您是否忘记了Source=“Binding Part.BrandImage”
中的大括号?您解决了这个问题还是希望我回答这个问题?还没有解决(大括号松动了,但不是主要问题)problem@KlausGütter为什么为空?行Part=Part.GetPartById();
不可能是正确的-此时零件将为空。并且:您是否忘记了Source=“Binding part.BrandImage”
中的花括号?您是否解决了此问题或希望我回答此问题?尚未解决(花括号松动,但不是主要的problem@KlausGütter为什么为null?更改视图中用于测试的两个属性对我没有帮助。你能解释一下吗?你能在这里发布你的代码吗?在开始主题中更新模型,同时发送名称,如OnPropertyChanged(nameof(BrandImage));norhig change我认为这里的主要问题是Part=Part.GetPartById();更改视图中用于测试的两个属性对我没有帮助。你能解释一下吗?你能在这里发布你的代码吗?在开始的topictry中更新模型并发送名称,比如OnPropertyChanged(nameof(BrandImage));norhig change我认为这里的主要问题是Part=Part.GetPartById();