C# XAML集合数据绑定
我正在做一个简单的纸牌游戏,你能告诉我如何实例化收集并添加一些东西吗 这是我的基本卡片类和包含可观察卡片列表的卡片类C# XAML集合数据绑定,c#,windows,xaml,windows-store-apps,C#,Windows,Xaml,Windows Store Apps,我正在做一个简单的纸牌游戏,你能告诉我如何实例化收集并添加一些东西吗 这是我的基本卡片类和包含可观察卡片列表的卡片类 class Card { public String Name { get; set; } } class Cards { public ObservableCollection<Card> CardCollection { get; set; } } 这是我的XAML,请注意绑定是可以的,但列表是空的,我不知道如何在列表中添加项 <Grid
class Card
{
public String Name { get; set; }
}
class Cards
{
public ObservableCollection<Card> CardCollection { get; set; }
}
这是我的XAML,请注意绑定是可以的,但列表是空的,我不知道如何在列表中添加项
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.DataContext>
<local:Cards x:Name="Cards"></local:Cards>
</Grid.DataContext>
<TextBlock Text="Cards"
FontFamily="Segoe UI"
FontSize="42"></TextBlock>
<ListView Margin="10,60,10,10" ItemsSource="{Binding CardCollection}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="50" Background="White">
<TextBlock Text="{Binding Name}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
我找到了答案。
必须先安装集合属性,然后才能使用它。
我已经在我的Cards类的构造函数中添加了它
class Cards
{
public ObservableCollection<Card> CardCollection { get; set; }
public Cards()
{
CardCollection = new ObservableCollection<Card>();
}
}
你也可以这样做
class Cards
{
private ObservableCollection<Card> _CardCollection = new ObservableCollection<Card>();
public ObservableCollection<Card> CardCollection
{
get
{
return _CardCollection;
}
set
{
_CardCollection=value;
OnPropertyChanged("CardCollection"); //Implement property changed event
}
}
}
编辑2:
是的,您可以使用实现ICommand接口并将命令绑定到控件。看看这个
如果您只是想将实例绑定到XAML。您可以在Mainpage.xaml.cs中这样访问它
您可以像bind.CardCollection这样获得绑定集合当呈现控件时,会创建一个新实例。你能告诉我如何访问这个收集实例吗?我的意思是如何在代码隐藏中添加和删除元素。我知道添加和删除方法。我的意思是-类位于Card.cs文件中,如果我想记录诸如Click之类的事件,则这些事件位于MainPage.xaml.cs文件中。当我的集合由XAML实例化时,如何从代码隐藏中访问它?我应该使用命令结构吗?
CardCollection.Add(new Card{Name="Ace of spades"});
var bind = (Cards)DataContext;