【发布时间】:2021-04-19 17:00:30
【问题描述】:
我的页面中有一个 CollectionView 和一个与类绑定的标签名称
<CollectionView Grid.Column="0"
Grid.Row="1"
SelectionMode="Single"
ItemsSource="{Binding MarketplacePackages}">
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout Orientation="Vertical">
<Label Text="{Binding Name}" />
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
然后我有一个类市场
public class MarketplacePackage
{
public string Name { get; set; }
}
在我的 ViewModel 中我有这个
一个列表视图
List<MarketplacePackage> marketplacePackages;
public List<MarketplacePackage> MarketplacePackages
{
get { return marketplacePackages; }
set { SetProperty(ref marketplacePackages, value); }
}
我初始化列表的构造函数
public MarketplaceViewModel()
{
Catalogue = new Command(onCatalogueClicked);
MyDevice = new Command(onMyDeviceClicked);
MyOrders = new Command(onMyOrderdsClicked);
MarketplacePackages = new List<MarketplacePackage>() {
new MarketplacePackage()
{
Name = catalogueList[0],
},
new MarketplacePackage()
{
Name = catalogueList[1]
},
new MarketplacePackage()
{
Name = catalogueList[2]
},
new MarketplacePackage()
{
Name = catalogueList[3]
}
};
//this works!
//MarketplacePackages[0].Name = "String";
}
当我调用 onClickMethod 时,我会尝试更改我的 listView 中的数据
private async void onCatalogueClicked()
{
MarketplacePackages[0].Name = "String";
}
【问题讨论】:
-
MarketplacePackage 需要实现 INotifyPropertyChanged - 这是在属性更新时通知 UI 的机制