私はWPFを初めて使用しており、MVVMパターンを使用しています。WPFデータとUserControlのバインド
私はグリッドを持つWPF UserControlを持っています。グリッドには2つの列があります。最初は目的を選択するためのもので、もう1つは別のUserControlを表示するものです。
私はの.xaml内のユーザーコントロールを表示する方法を知っている:
<local:ViewSecurityCF Grid.Column="1" Grid.Row="0"/>
しかし、今私は、可能な場合は、別のUserControlでデータバインディングをしたいです。
この時点で私にとって唯一の選択肢は、使用する各UserControlとData Bind Visibilityプロパティのタグを作成することです。
しかし、プログラミングの観点からは、それは非常に多くのメモリを消費するので、私はそれを行うより効率的な方法を探しています。
ご協力いただければ幸いです。
ありがとうございました。
編集(私の現在のソリューション):
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*" />
<ColumnDefinition Width="6*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="Cellular View" Grid.ColumnSpan="2" Style="{StaticResource UXHeaderTextStyle}"></TextBlock>
<local:ViewBillingLevel Grid.Row="1" Grid.Column="1" Visibility="{Binding BillingLevelVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewCity Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewCityVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewClientSite Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewClientSiteVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewCompany Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewCompanyVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewCompanyBillingLevel Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewCompanyBillingLevelVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewCompanyGroup Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewCompanyGroupVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewContractService Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewContractServiceVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewDeviceMake Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewDeviceMakeVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewDeviceModel Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewDeviceModelVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewPackage Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewPackageVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewProvince Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewProvinceVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewServiceProvider Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewServiceProviderVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewStatus Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewStatusVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
<local:ViewSuburb Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewSuburbVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
</Grid>
しかし、私はこのウィンドウを開くと、そのすべてのユーザーコントロールをロードするので、それが遅れて言ったように。それが可能であるならば、私はこれらのいずれかをしたいし、それに異なるユーザーコントロールをバインド:
<local:ViewClientSite Grid.Row="1" Grid.Column="1" Visibility="{Binding ViewClientSiteVisibility}" Width="Auto" Height="Auto" Margin="{Binding UserControlMargin}"/>
私はあなたが達成したいことを得られませんでした。あなたがやったことと達成したいことを追加してください。 –