我目前在使用mvvm向列表中添加项目时遇到了麻烦,我已经成功地使用这个简单的方法在列表中添加项目:
private DelegateCommand _addItemCommand;
public ICommand AddItemCommand
{
get
{
if (_addItemCommand == null)
{
_addItemCommand = new DelegateCommand(AddItem);
}
return _addItemCommand;
}
}
void AddItem()
{
DessertData.Add(new CakeDataSample {Samplename="Black Forest" ,ImagePath="Assets/Black-Forest.jpg"});
}
现在我想要实现的是获取Textblock或文本框的文本并将它们添加到列表中。我想这样做:
DessertData.Add(new CakeDataSample {Samplename=txtCakename.text ,ImagePath=myImageSource}); //or something likethat
我怎么会得到那个文字?有什么东西可以添加吗?
答案 0 :(得分:1)
请按照以下代码
private string text;
public string Text
{
get
{
return text;
}
set
{
text = value;
OnPropertyChanged("Text");
}
}
在您的虚拟机中使用此功能...我相信您已实施INotifyPropertyChanged
<TextBox x:Name="txtCakename" Text="{Binding Text, Mode=TwoWay}"/>
这会将文本绑定到txtCakename到Text Property ..
并在你的AddItem方法中,
DessertData.Add(new CakeDataSample {Samplename=this.Text,ImagePath=myImageSource});