私は次のWPFコンボボックスを持っています:
<Window.Resources>
<CollectionViewSource x:Key="performanceItemsource" Source="{Binding Path=SelectedReport.Performances}" >
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Name"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
...
<ComboBox Name="cbxPlanPerf" Grid.ColumnSpan="2"
SelectedValuePath="MSDPortfolioID" DisplayMemberPath="Name"
SelectedValue="{Binding Path=PlanPerfID}"
ItemsSource="{Binding Source={StaticResource performanceItemsource}}"/>
ソースCollectionViewSource
は次のとおりです。
public List<MSDExportProxy> Performances
{
get
{
if (Portfolio != null)
{
return (from a in Portfolio.Accounts where a.MSDPortfolioID != null select new MSDExportProxy(a))
.Concat<MSDExportProxy>(from g in Portfolio.Groups where g.MSDPortfolioID != null select new MSDExportProxy(g))
.Concat<MSDExportProxy>(from p in new[] { Portfolio } where p.MSDPortfolioID != null select new MSDExportProxy(p))
.ToList<MSDExportProxy>();
}
return new List<MSDExportProxy>();
}
}
バインドされたプロパティPlanPerfID
は文字列です。
ListBoxコントロールを使用してレコード間を移動します。前のレコードのComboBox.ItemsSourceにアイテムがない場合、ComboBoxは正常に機能します。前のレコードのComboBox.ItemsSourceにアイテムがあった場合、新しいレコードはItemsSource
コレクション内で一致するアイテムを見つけられません。XAMLと分離コードの両方でを設定しようとしましたItemsSource
が、この奇妙な動作は何も変わりません。どうすればこのくそったれを機能させることができますか?