Динамическая привязка Wpf MVVM usercontrols и show records в соответствии с выбранным дизайном
Мне нужна помощь в моем проекте.Не смог получить ни одного правильного решения, как я хочу. Я объясню вам свой сценарий здесь.
Я работаю над проектом WPF с шаблоном MVVM, где у меня есть главный экран Windows, при загрузке главного экрана Windows он должен быть пустым, и там есть только одна метка. При нажатии на эту метку я должен открыть новую форму, которая является экраном виджета, а экран виджета имеет несколько кнопок(в количестве 12) с изображениями.
Теперь, при нажатии любой кнопки, я хочу, чтобы это конкретное имя кнопки или параметр, поэтому соответственно этому имени или параметру я должен найти пользовательские элементы управления из представлений и визуализировать пользовательские элементы управления на главном экране Windows с коллекцией из 20 записей. Если я снова нажму на ярлык главного окна и выберу другую кнопку с экрана виджета, то он должен загрузить еще один выбранный пользовательский элемент управления, который будет привязан к главному экрану Windows.
Итак, короче говоря, в соответствии с выбранным дизайном с экрана виджета все записи должны быть показаны в основных окнах с помощью пользовательских элементов управления.
Это мой основной код экрана Windows, в настоящее время он связывает статический пользовательский элемент управления, который я упомянул непосредственно в элементах управления из этих 12 пользовательских элементов управления, один из которых-UserControlColumn1XL, как он должен быть динамически изменен со всем сценарием?
Что я уже пробовал:
<Window x:Class="TechMedic.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:uc ="clr-namespace:TechMedic.View.UserControls" xmlns:local="clr-namespace:TechMedic" xmlns:controls="clr-namespace:TechMedic.View.UserControls" xmlns:data="clr-namespace:TechMedic.Data" mc:Ignorable="d" WindowStartupLocation="CenterScreen" Background="Black" Title="Main Window}" WindowState="Maximized" MinWidth="750" > <StackPanel> <StackPanel Grid.Column="0" Background="Black" VerticalAlignment="Top" > <Border BorderThickness="1" Background="Black" BorderBrush="White"> <Button Style="{StaticResource TransparentStyle}" Command="{Binding OnClickNormalCommand}" CommandParameter="Normal" Foreground="LightSkyBlue" HorizontalAlignment="Center" FontSize="12pt" > <TextBlock Text="{Binding NormalCollection.Count, StringFormat='Normal: {0}'}" Padding="0,5, 0, 5" Foreground="{Binding IsNormalColor}" /> </Button> </Border> <Border Name="UserControl1BorderNormal" BorderBrush="White" BorderThickness="0" > <ItemsControl ItemsSource="{Binding NormalCollection}" Name="ListNormal" Margin="4,0" > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <WrapPanel HorizontalAlignment="Left" /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <controls:UserControlColumn1XL HorizontalAlignment="Left" Margin="2" /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </Border> </StackPanel> </StackPanel> </Window>
Dirk Bahle
Не знаю, в чем заключается ваш вопрос - вы показываете только элементы управления, но не модель или viewmodel. Чтобы трудно было читать твои мысли :-(
Rahul96553
Это слишком длинный код, чтобы помещать его здесь. так что объясню вам проще всего.
Actually ,The Project includes a MainWindow which has a Label. I want to open a Widget form with Multiple Image Button on Label's Click command. Each Image button will return List of Parameters on MainWindowViewModel. The list will bind with UserControl on MainWindow Screen. If I repeat the Same thing by choosing different Image Button. The MainWindowViewModel will Replace with new List. But in this case I want change UserControl for Example in this line : <controls:UserControlColumn1XL HorizontalAlignment="Left" Margin="2" /> . Here, UserControlColumn1XL is Static for now. But I want to change it dynamically on Selected Widget Button. I am not getting how to made it possible. So I am waiting for your valuable Suggestions.
Nathan Minier
Две вещи:
Является выбранным элементом управления, представленным свойством в ViewModel.
Является ли класс, представляющий выбранный элемент управления полиморфным, или он изменяется только в зависимости от конкретных свойств?