MVVM パターンを使用する WPF のアプリケーションがあり、リストまたは observableCollection を使用して、たとえば、comboBox、DataGrids などをバインドしています。ただし、コントロールがあり、このコントロールの項目を動的に追加したいと考えています。ラップパネル。
私のビュー モデルでは、このコントロールのビューとビュー モデルを作成し、ラップ パネルにバインドされているリストに追加することをお勧めします。
これが得策でない場合、アイテムをラップ パネルに動的に追加するにはどうすればよいですか?
ありがとう。
編集
コードを追加します。
私はそれをやろうとしていますが、解決策がわかりません。
ビューを作成するプリンシパル ビュー モデルと、セカンダリ ビューのビュー モデルがあります。このプリンシパル ビュー モデルでは、次のコードを使用します。
ucDialogView myDialogView = new ucDialogView ();
ucDialogViewModel myDialogViewModel = new ucDialogViewModel ();
ucDialogView.DataContext = ucDialogViewModel;
私のダイアログのビューモデルは次のとおりです。
public class DialogViewModel : BaseViewModel
{
private ObservableCollection<ControlViewModel> _controls = new ObservableCollection<ControlViewModel>();
public ObservableCollection<ControlViewModel> Controls
{
get { return _myControls; }
set
{
_myControls = value;
base.RaisePropertyChangedEvent("Controls");
}
}
public myControlViewModel()
{
ControlViewModel myControlViewModel = new ControlViewModel();
Controls.Add(myControlViewModel);
}
}
私のダイアログの私のaxml:
<UserControl x:Class="MyApp.Views.DialogView"
Name="Principal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:my="clr-namespace:myApp.ViewModels"
mc:Ignorable="d"
d:DesignHeight="1122" d:DesignWidth="794" Width="794" Height="1122">
<ItemsControl Grid.Row="1"
ItemsSource="{Binding Controls, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel HorizontalAlignment="Center" Margin="0,15,0,0" Name="wrpControls" VerticalAlignment="Stretch" Width="Auto" Grid.Row="1" IsItemsHost="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type my:ControlViewModel}">
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</UserControl>
ただし、空のダイアログが表示されます。コントロールは、ユーザー コントロール、ビュー、およびそのビュー モデルです。