Привязка ListView со свойством “IsSelected” ListViewItem

Попробуйте запрос ниже.

    ;with cte
    AS
    (
        Select ROW_NUMBER() OVER(partition by STAT Order by UDATE ) as Rn,  
        *,
        LAG(UDATE) OVER(partition by STAT Order by UDATE ) As PrevUDate,
        COUNT(*) OVER(partition by STAT) As [Count]
        from YourTable
    )



    Select Max(rn) As [Count],
    OBJNR,STAT,
    SUM(CASE WHEN rn%2=0 THEN DATEDIFF(d,PrevUDate,UDATE) 
            WHEN rn=[Count] THEN  DATEDIFF(d,UDATE,getDate())   
        ELSE 0 END)
    from cte
    Group BY OBJNR, STAT
5
задан Serhat Ozgel 27 January 2009 в 11:33
поделиться

1 ответ

Прежде всего Вы - очень более обеспеченное выполнение этого в XAML. Это делает вещи намного более ясными и короче. Я собираюсь ответить и в XAML и в коде - позади для демонстрации этого.

Самый легкий путь состоит в том, чтобы сделать Стиль, относился к ListViewItem и использованию Метода set для применения привязки. На ListViewItem DataContext будет Вашим связанным объектом (TrinityEventData в этом случае).

Принятие Вас имело Ваш ListView в XAML:

<ListView x:Name="lstview_Unack">
    <ListView.Resources>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
        </Style>
    </ListView.Resources>
</ListView>

В коде необходимо создать Стиль, Метод set, и Связывающий вручную:

Style listViewItemStyle = new Style { TargetType = typeof(ListViewItem) };
listViewItemStyle.Setters.Add(new Setter
{
    Property = ListViewItem.IsSelectedProperty,
    Value = new Binding { Path = new PropertyPath("IsSelected") }
});
lstview_Unack.Resources.Add(typeof(ListViewItem), listViewItemStyle);

Существуют проблемы с этим и виртуализацией, как бы то ни было. Если Ваш ListViewItems виртуализируется, Вы могли бы отменять выбор объекты в ListView, но привязка не будет стрелять, потому что Ваш ListViewItem не будет существовать.

13
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

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