문제

여기요. BackgroundColor라는 문자열 속성이있는 객체가 있습니다. 이 문자열은 색상의 16 진수 표현입니다. 이 개체를 변경할 수 없습니다.

이 개체의 모음을 ListView에 묶고 있습니다. 내가하고 싶은 것은 ListView Row의 배경을 행에 표시되는 객체의 배경 검색 속성에 바인딩하는 것입니다.

이것에 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

나는 사용한다고 생각한다 ivalueconverter 적절한 솔루션입니다. 문자열 16 진수를 색상으로 변환하는 16 진수자를 만들 수 있습니다. 그 링크는 당신을 시작해야합니다.

다른 팁

스타일을 사용하여 ListViewItem의 배경을 행 항목에 바인딩하고 싶을 것입니다. 항목은 ListViewItem의 기본 데이터 콘텍스트이므로 간단해야합니다.

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:sys="clr-namespace:System;assembly=mscorlib"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid.Resources>
        <x:Array x:Key="colors" Type="{x:Type sys:String}">
            <sys:String>Red</sys:String>
            <sys:String>Yellow</sys:String>
            <sys:String>#0000FF</sys:String>
        </x:Array>
    </Grid.Resources>
    <ListView ItemsSource="{StaticResource colors}">
        <ListView.Resources>
            <Style TargetType="{x:Type ListViewItem}">
                <Setter Property="Background" Value="{Binding .}"/>
            </Style>
        </ListView.Resources>
    </ListView>
</Grid>

전체 항목에 바인딩하는 대신 BackgroundColor에 바인딩되지만 위와 유사해야합니다. Prefix A "#"에 바인딩이있는 컨버터를 사용해야합니다. 이것은 내장 브러시 콘버터의 신호로 16 진로 구문 분석합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top