Как использовать разные панели в виде сгруппированного списка?

Согласно инструкциям Яшу, я написал следующую функцию (это PL / SQL-код, но он должен быть легко адаптирован к любому другому языку).

FUNCTION field(str IN VARCHAR2) RETURN VARCHAR2 IS
    C_NEWLINE CONSTANT CHAR(1) := '
'; -- newline is intentional

    v_aux VARCHAR2(32000);
    v_has_double_quotes BOOLEAN;
    v_has_comma BOOLEAN;
    v_has_newline BOOLEAN;
BEGIN
    v_has_double_quotes := instr(str, '"') > 0;
    v_has_comma := instr(str,',') > 0;
    v_has_newline := instr(str, C_NEWLINE) > 0;

    IF v_has_double_quotes OR v_has_comma OR v_has_newline THEN
        IF v_has_double_quotes THEN
            v_aux := replace(str,'"','""');
        ELSE
            v_aux := str;
        END IF;
        return '"'||v_aux||'"';
    ELSE
        return str;
    END IF;
END;
0
задан Sid Go 16 January 2019 в 11:05
поделиться

1 ответ

https://docs.microsoft.com/en-us/windows/communitytoolkit/extensions/listviewbase

. В вышеприведенной статье рассказывается о вкусности WCT, которая позволяет динамически изменять Tamplate элемента, который собирается визуализироваться, этот конкретный пример является статически выраженным расширением, которое просто работает как прикрепленное свойство к просмотру списка и циклически перебирает два разных шаблона

Но вы можете легко расширить ListView в шаблонное управление и, следовательно, более легкий доступ к модели представления, в которой находится ваш источник предметов, с этого момента вы можете изменить

 private static void ItemTemplateContainerContentChanging(Windows.UI.Xaml.Controls.ListViewBase sender, ContainerContentChangingEventArgs args)

, где происходит вся магия.

Обозначение для реализации

Примечание 0:

, если вы не знаете mvvm и связывание, забудьте о том, что вы когда-либо читали это, и изучайте его.

Примечание 1:

Все дочерние элементы управления, которые не имеют явно определенного контекста данных, наследуют своих родителей.

Примечание 2:

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

Примечание 3:

Чтобы преобразовать это в шаблонный / настраиваемый элемент управления, вам придется в значительной степени создать собственную реализацию ListView, например, MyListview: ListView

Свойства зависимости должны Чтобы преобразовать их в обычные, просто введите «propdp» и дважды нажмите «Tab», чтобы открыть шаблон по умолчанию.

Вам все равно придется ссылаться на все различные DataTamplates из XAML, как это показано в приведенном ниже демонстрационном приложении.

Примечание 4:

Отрезать провисание, которое, например, для демонстрационного кода, направления растяжения и полос зебры не требуется.

https://github.com/windows-toolkit/WindowsCommunityToolkit/blob/master/Microsoft.Toolkit.Uwp.UI/Extensions/ListViewBase/ListViewExtensions.cs

это точное расположение фрагмента кода, о котором я говорил, чтобы проверить его в действии и поиграть с ним, загрузите «Windows Community Toolkit» из магазина, оно находится в разделе «Расширения».

0
ответ дан Xeorge Xeorge 16 January 2019 в 11:05
поделиться
Другие вопросы по тегам:

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