Свяжите динамически созданные элементы управления внутри ScrollViewer - WPF - PullRequest
0 голосов
/ 31 мая 2018

Я уже создал динамические элементы управления, используя .Net 4.0, используя VS2010.Их, когда я нажимал кнопку, я использовал для создания различных элементов управления, зависящих от входных данных из XML-файла, и устанавливал динамически созданные элементы управления в окно WPF с помощью элемента управления «Содержимое».Исходный код ниже,

ButtonClickMethod.cs

   private static void CustomControlsButton_Click(object source, RoutedEventArgs args) //button click event
    {
        CustomControls cui = new CustomControls();
        if (isFileExist)
        {
            cui.Content = cui.CreateGrid(); //Code which set the created controls to the content 
            cui.ShowDialog();
        }
    }

CreateCustomControls.cs

    public object CreateGrid() // responsible for control creation
    {
        int noOfRows = Attributes.Count;
        new PopulateGrid(noOfRows, Attributes);
        return grid.Get();
    }

CustomControls.xaml

<Window x:Class="Client.CustomControls"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:resx="clr-namespace:YottaMark.Wpf.Label.Client.Properties"
    Title="Custom Controls" Height="300" Width="300">
    <Grid>

    </Grid>
</Window>

Мы обновляемфреймворк и использование фреймворка Catel MVVM.Теперь я хочу преобразовать те же функции для поддержки .Net 4.6.2 и MVVM.

В обновленной версии я планирую связать созданные элементы управления внутри ScrollerViewer.

<catel:DataWindow
    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:local="clr-namespace:Labeling.Views"
    xmlns:catel="http://schemas.catelproject.com"
    xmlns:orc="http://www.wildgums.net.au/orc" x:Class="Labeling.Views.CustomFieldListView"
    mc:Ignorable="d" Icon="{StaticResource Icons8Printer}"
    Title="FieldsConfiguration" Height="270" Width="584" WindowStartupLocation="CenterScreen" SizeToContent="Manual" ResizeMode="NoResize">
<Grid>
<ScrollViewer Grid.ColumnSpan="2" Margin="0,51.424,10,16.251" Grid.Row="1">     
</ScrollViewer>
</Grid>
</catel:DataWindow>

ViewModel.csдля вышеупомянутого WPF

public class CustomFieldListViewModel : ViewModelBase
{
    private readonly IAttributesService _AttributesService;
    public bool AttributesFileExists { get; set;}
    public bool AttributesExists { get; set; }
    private static JArray Attributes;
    private static DynamicGrid grid = new DynamicGrid();

    public CustomControlListViewModel(IAttributesService AttributesService)
    {
        _AttributesService = AttributesService;
        AttributesFileExists = false;
        AttributesExists = false;
    }
}

Строка cui.Content = cui.CreateGrid(); в ButtonClickMethod.cs является ответом для установки созданных элементов управления в Content.В обновленном фреймворке я использую MVVM и хочу узнать, как установить созданные элементы управления в ScrollViewer во время загрузки вышеприведенного представления.

Пожалуйста, помогите мне в этом.

СпасибоВы

...