【发布时间】:2015-02-28 01:53:52
【问题描述】:
我有一个绑定到列表框的可观察集合。 该集合有 2 个项目,但列表框显示 3 个项目(例如,实际在可观察集合中的 2 个项目和 NewItemPlaceholder 的一个附加项目。
我希望它只显示 2 个项目。
下面是我的 XAML。
<ListBox MinHeight="20" MinWidth="20" Name="MultipleSelectionsMultipleWagersListBox" Visibility="{Binding Path=Coupon.BarcodeText, Converter={StaticResource CouponBarcodeToVisibilityConverter1}, ConverterParameter=994450_994550}" Height="AUto" Width="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="5"
ItemsSource="{Binding Path=BetViewModels}" Grid.Row="1" Grid.Column="1" >
<ListBox.ItemTemplate>
<DataTemplate>
<View:BetView DataContext="{Binding}" Name="ThisBet" Margin="5"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这里是c#
private ObservableCollection<BetViewModel> _betViewModels = new ObservableCollection<BetViewModel>();
public ObservableCollection<BetViewModel> BetViewModels
{
get { return _betViewModels; }
set
{
if (Equals(value, _betViewModels)) return;
_betViewModels = value;
OnPropertyChanged("BetViewModels");
}
}
这是填充 betViewModels 的代码:
var betViewModel = new BetViewModel { Bet = new Bet() };
betViewModel.Bet.SelectionName = "Chelsea";
betViewModel.Bet.Price = "4/9";
betViewModel.Bet.Market = "90 Minutes";
betViewModel.Bet.ExpectedOdd = DateTime.Now;
BetViewModels.Add(betViewModel);
betViewModel = new BetViewModel { Bet = new Bet() };
betViewModel.Bet.SelectionName = "Chelsea";
betViewModel.Bet.Price = "4/9";
betViewModel.Bet.Market = "90 Minutes";
betViewModel.Bet.ExpectedOdd = DateTime.Now;
BetViewModels.Add(betViewModel);
如何从显示新项目位置的附加项目切换此设置
这是显示占位符的图像
【问题讨论】:
-
您在此处显示的内容中没有任何内容表明您遇到的问题。这不是 ListBox 本身发生的事情,所以您对 ItemsSource 所做的其他事情会导致这种情况。
-
@John Bowen,是不是因为我们使用了 DataTemplate(如上所示)?
-
没有。正如我所说,它与您在此处显示的任何内容都无关。您需要展示您对 ItemsSource 集合所做的工作。
-
嗨,John,我已经添加了 ItemsSource 和它现在绑定的 c# 代码。
-
您还必须显示填充 itemsource 的代码,而不仅仅是属性!