【发布时间】:2017-04-11 10:08:52
【问题描述】:
您知道,当您盯着某物看足够长的时间时,它就不再有意义了……我正在尝试将列表视图项的背景属性绑定到它是否是视图模型中集合的一部分。这是我正在使用的简化版本:
<Grid>
<ListView x:Name="AirportListView"
SelectionMode="None"
IsItemClickEnabled="True"
ItemClick="AirportListView_ItemClick">
<ListView.ItemTemplate>
<DataTemplate x:DataType="x:String">
<Grid Padding="16">
<TextBlock Text="{x:Bind}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
和:
public sealed partial class MainPage : Page
{
public ObservableCollection<string> MyAirports { get; set; } = new ObservableCollection<string>();
public MainPage()
{
this.InitializeComponent();
AirportListView.ItemsSource = new List<string>()
{
"EDDB",
"LGIR",
"EHAM",
"LFPO",
"EGKK"
};
}
private void AirportListView_ItemClick(object sender, ItemClickEventArgs e)
{
if (e.ClickedItem is string clickedAirport)
{
if (MyAirports.Contains(clickedAirport))
MyAirports.Remove(clickedAirport);
else
MyAirports.Add(clickedAirport);
}
}
}
理想情况下,我想要实现的是在数据模板中绑定网格的背景,以便当项目是 MyAirports 的一部分时它是不同的颜色。我只是无法弄清楚如何使用 x:Bind 或 Binding 来做到这一点。我可以想出一些更冗长的方法来实现相同的目标,但想知道是否有更优雅的数据绑定解决方案。
任何想法将不胜感激!
会
【问题讨论】: