Какой может быть лучший подход, чтобы сломать большой xaml? - PullRequest
2 голосов
/ 17 декабря 2010

Я работаю над настольным проектом с использованием WPF, фреймворк 3.5.

В этом приложении много экранов, но все они представлены с использованием одного пользовательского элемента управления (в основном панель стека, заключенная в классс некоторой дополнительной логикой), что я делаю, это как всплывающие и всплывающие экраны в зависимости от выбора пользователя.

Теперь все экраны (которые в основном являются панелями стека) остаются в одном файле xaml, и этот файлстановится невероятно большим, и его становится все труднее поддерживать и обновлять.

Поэтому я подумал, что, возможно, я смогу создать пользовательские элементы управления для каждого экрана в приложении, и это нарушит файл xaml, упрощая работу с ним., но я не уверен, что это лучший или рекомендуемый подход, поэтому я хотел бы знать, что другие люди делают для решения этой проблемы.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 17 декабря 2010

почему бы не использовать словари ресурсов, чтобы разбить Xaml

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Dictionary1.xaml" />
            <ResourceDictionary Source="Dictionary2.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
<Grid>
    <StackPanel>
        <ContentControl Content="{StaticResource StackPanel1}" />
        <ContentControl Content="{StaticResource StackPanel2}" />
    </StackPanel>
</Grid>

и словари будут иметь содержимое, подобное этому

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel x:Key="StackPanel1">
        <Button />
        <Button />
    </StackPanel>
</ResourceDictionary>
1 голос
/ 17 декабря 2010

Имеет смысл использовать XAML в виде файлов меньшего размера.Пользовательские элементы управления - очень хороший способ сделать это - это первое, что я пытаюсь сделать, когда мне нужно это сделать, и мне не нужно было искать секунду.если части XAML, которые вы пытаетесь модульно использовать, связаны с деталями реализации друг друга - например, если вы связываете элементы управления в одном с элементами в другом.Это немного увеличивает сложность, но только немного.

...