【问题标题】:Customizing UWP ListViewItem by ViewModel通过 ViewModel 自定义 UWP ListViewItem
【发布时间】:2017-07-23 20:15:26
【问题描述】:

寻求帮助。 是否有机会通过 ViewModel {Binding} 更改 Listviewitem 的 ContentBorder:BorderBrush? Something like this

【问题讨论】:

    标签: windows mvvm uwp win-universal-app mvvmcross


    【解决方案1】:

    更新

    您可以创建一个ItemContainerStyleSelector,您可以在其中根据列表中的当前项目应用自定义样式。

    public class CustomItemContainerStyleSelector : StyleSelector
    {
        public Style MyStyle1 { get; set; }
        public Style MyStyle2 { get; set; }
    
        protected override Style SelectStyleCore(object item, DependencyObject container)
        {
            var obj = (MyObject)item;
            if (/* Some kind of condition based on the bound object */)
            {
                return MyStyle1;
            }
            else
            {
                return MyStyle2;
            }
        }
    }
    

    你可以像这样使用这个样式选择器:

    <ListView ItemsSource="{Binding SomeList}">
        <ListView.ItemContainerStyleSelector>
            <local:CustomItemContainerStyleSelector>
                <local:CustomItemContainerStyleSelector.MyStyle1>
                    <Style TargetType="ListViewItem">
                        <Setter Property="BorderThickness" Value="5,0,0,0"/>
                        <Setter Property="BorderBrush" Value="Red"/>
                    </Style>
                </local:CustomItemContainerStyleSelector.MyStyle1>
                <local:CustomItemContainerStyleSelector.MyStyle2>
                    <Style TargetType="ListViewItem">
                        <Setter Property="BorderThickness" Value="5,0,0,0"/>
                        <Setter Property="BorderBrush" Value="Yellow"/>
                    </Style>
                </local:CustomItemContainerStyleSelector.MyStyle2>
            </local:CustomItemContainerStyleSelector>
        </ListView.ItemContainerStyleSelector>
    </ListView>
    

    【讨论】:

    • 好吧,当你激活 SelectionMode = Multiple 时,整个 ListviewItem 向右移动以显示复选框。我需要把这个边框贴在左边,所以复选框会出现在这个边框的右侧,就像这样joxi.ru/v294aELS3RaaMm
    猜你喜欢
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2013-12-30
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    相关资源
    最近更新 更多