Ресурсы приложений Silverlight для глобального доступа к одиночному элементу

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

Моя версия кода instantiaion является простым

UserProfile x = UserProfile.GetInstance();

Я хочу смочь сделать это в xaml в app.xaml файле и в WPF, у нас есть ObjectDataProvider, таким образом, я могу выразить что-то как

<ObjectDataProvider MethodName="GetInstance" 
ObjectType="{x:Type local:UserProfile}" x:Key="CurrentUserProfile"/>

Я изо всех сил пытаюсь найти правильную реализацию для этого в SL3.

5
задан keithwarren7 30 January 2010 в 04:24
поделиться

2 ответа

Как вы указываете, Silverlight не имеет ObjectDataProvider. Если вам нужна функция, которую он предоставляет, например, ленивая инстанцинация, то вам нужно построить свой собственный класс для работы с ним. Если вам на самом деле не нужны эти возможности, просто добавьте экземпляр UserProfile в App.Resources при запуске:-

 private void Application_Startup(object sender, StartupEventArgs e)
 {
    Resources.Add("CurrentUserProfile", UserProfile.GetInstance());
    RootVisual = new MainPage();
 }
3
ответ дан 15 December 2019 в 06:26
поделиться

Возможно, наиболее эффективным решением будет «рисование» направляющих отступов. с помощью подсветки соответствия. Чтобы понять, как это помогает, посмотрите на следующий пример:

:match Search /\%(\_^\s*\)\@<=\%(\%1v\|\%5v\|\%9v\)\s/

Он подсвечивает (используя группу выделения поиска, можно использовать любую другие, конечно) первый, пятый, девятый (и его можно продолжить) виртуальный столбец, занятый символом пробела, не предшествующим ничего, кроме пробела из начало строки. Таким образом, это приводит к выделению 4-пространственного отступа для трех уровней в глубине.

Для обобщения этой идеи остается только генерировать такие образцы, как упомянутый выше в соответствии с шириной текста текущего буфера и шириной сдвига (для обработки более глубоких уровней отступов и надлежащей ширины отступов). Эта задача может быть просто автоматизировано, как показано в функции ниже.

function! ToggleIndentGuides()
    if exists('b:indent_guides')
        call matchdelete(b:indent_guides)
        unlet b:indent_guides
    else
        let pos = range(1, &l:textwidth, &l:shiftwidth)
        call map(pos, '"\\%" . v:val . "v"')
        let pat = '\%(\_^\s*\)\@<=\%(' . join(pos, '\|') . '\)\s'
        let b:indent_guides = matchadd('CursorLine', pat)
    endif
endfunction

Каждый раз, когда вам нужны направляющие отступа в буфере, его можно включить с помощью : вызовите TogâIndentGuides () . Конечно, можно изменить группу выделения (или создайте специальный для использования только в направляющих отступов), настройте удобный сопоставление 1 для этого и/или вызов его из autocmd для некоторого файла типы.


1 Направляющие отступов, выделяющие конфигурацию из .vimrc file: https://gist.github.com/734422

-121--1108453-

То, что вы описываете, не поддерживается средством генерации javadoc.

И я думаю, что есть веская причина для этого тоже:

Если ваш метод в подклассе является просто реализацией абстрактного метода, то я думаю, что было бы правильно оставить абстрактное имя класса там.

На оборотной стороне, если ваш метод в подклассе является не просто реализацией, и делает нечто большее, что заслуживает внимания (достаточно, чтобы быть упомянутым в javadoc), то вы должны написать новый javadoc на метод в подклассе, вместо вызова inheritDoc.

-121--1178125-

Silverlight не имеет ObjectDataProvider .

При этом можно использовать DataContext объекта Silverlight.....

Application.DataContext = UserProfile.GetInstance();
0
ответ дан 15 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: