私はこれを暗闇の中で撮影していて、周りを見回していましたが、関連するものはあまり見つかりませんでした. ほとんどの場合、現在のウィンドウに ItemsControl を作成しようとしているので、ユーザーがウィンドウの [製品の追加] ボタンをクリックすると、横方向に UserControl が画面に追加されます。
手始めに、私はMVVMパターンを使用しており、MAINウィンドウのViewModelであるPricingViewModelを持っています。これは、ユーザーが PricingView の [製品の追加] ボタンを押すたびに表示したい UserControl のビューの ViewModel です。コードに飛び込むと、宣言された ObservableCollection と AddComparison メソッドがあります。コレクションは、VM のコンストラクターでインスタンス化されます。
public ObservableCollection<ComparisonViewModel> Products { get { return _products; } }
public void AddComparison()
{
var products = IoC.Get<ComparisonViewModel>();
Products.Add(products);
}
次に、PricingViewModel 内のそのコレクションにバインドする PricingView 内の ItemsControl を取得しました。
<ItemsControl ItemsSource="{Binding Path=Products}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Stretch"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
私はそれを実行し、追加を押すと、コレクション名だけが表示されます。ユーザーが [比較の追加] をクリックしたときに、実際に新しい比較ユーザー コントロールをポップアップ表示するにはどうすればよいですか? 事前に助けてくれてありがとう!