Удаление дублированного кода XAML с помощью пользовательского элемента управления? - PullRequest
0 голосов
/ 25 апреля 2018

Какой хороший способ избавиться от повторения XAML в разных файлах.Пример:

            <StackPanel Grid.Row="8" Grid.Column="2" Style="{StaticResource ViewContentStyle}" Visibility="{Binding Type, Converter={StaticResource TypeToVisibility}}">
                <ctl:NewLabel LabelContent="{x:Static common:LocalResources.UNameLabel}" LabelStyle="{DynamicResource ContentLabelStyle}"
                                    ImageStyle="{DynamicResource ViewContentControlStyle}">
                    <ctl:ETextBox x:Name="UserName"  HorizontalAlignment="Left" Style="{StaticResource {x:Type TextBox}}"
                                                LostFocus="Textbox_OnLostFocus"
                                                Text="{Binding Path=UserName, UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True, ValidatesOnDataErrors=True}">
                    </ctl:ETextBox>
                </ctl:NewLabel>
            </StackPanel>

            <StackPanel Grid.Row="9" Grid.Column="2" Style="{StaticResource ViewContentStyle}" Visibility="{Binding SelectedAuthenticationType, Converter={StaticResource AuthToVisibility}}">
                <StackPanel Orientation="Horizontal" KeyboardNavigation.TabNavigation="None">
                    <Label Style="{DynamicResource ContentLabelStyle}" Content="{x:Static common:LocalResources.UPasswordLabel}"/>
                <AdornerDecorator>
                    <PwdBox x:Name="Password"  
                             HorizontalAlignment="Left"
                             LostFocus="Textbox_OnLostFocus" PasswordChar="*"
                    </PwdBox>
                </AdornerDecorator>
            </StackPanel>

У меня есть 3 файла, в которых почти один и тот же код используется повторно.Я думаю, что есть способ избавиться от этого с помощью общего пользовательского элемента управления.Однако я не вижу много примеров того, как это можно сделать.Любые выводы будут великолепны.

1 Ответ

0 голосов
/ 25 апреля 2018

Добавьте новый UserControl в свой проект и переместите общий XAML в этот.

Затем можно создать экземпляр этого UserControl (заменить «UserControl1» на фактическое имя вашего UserControl) в любом другом представлении:

<!--insert the shared markup here: -->
<local:UserControl1 />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...