2010-10-04 2 views
0
<UserControl.Resources> 

<DataTemplate x:Key="MyCustomTemplate"> 
      <StackPanel Orientation="Horizontal"> 
       <Label Content="{Binding Path=ID}"/> 
       <Rectangle Height="18" Width="20" /> 
      </StackPanel> 
     </DataTemplate> 
    </UserControl.Resources> 

<Grid> 
<ListBox x:Name="userListBox" Margin="10"/> 
</Grid> 

Код:Привязка прямоугольника заполнения до значения за

userListbox.ItemsSource = myservice.getvalue();

Теперь, как мне привязать цвет прямоугольника. GetValue возвращает список объектов, чей один элемент является целым числом, и я должен использовать это значение для определения цвета прямоугольника. Скажем, если object.item = 1 цвет = зеленый object.item = 2 цвет = красный

+0

вы хотите чередуя цвета строки или вы просто хотите col0r прямоугольник, основанный на стоимости недвижимости? –

ответ

2

вы можете использовать триггер данных для достижения этой цели, например:

<DataTemplate x:Key="MyCustomTemplate"> 
    <StackPanel Orientation="Horizontal"> 
     <Label Content="{Binding Path=ID}"/> 
     <Rectangle x:Name="rect" Height="18" Width="20" /> 
    </StackPanel> 
    <DataTemplate.Triggers> 
     <DataTrigger Binding="{Binding Path=object.item}" Value="1"> 
      <Setter TargetName="rect" Property="Fill" Value="Green"/> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding Path=object.item}" Value="2"> 
      <Setter TargetName="rect" Property="Fill" Value="Red"/> 
     </DataTrigger> 
    </DataTemplate.Triggers> 
</DataTemplate> 

, а затем связать значение для шаблонного управления для выбранного элемента в ListBox

<Label ContentTemplate="{DynamicResource MyCustomTemplate}" Grid.Column="2" Content="{Binding ElementName=userListBox, Path=SelectedItem}"/> 

или если DataTemplate на самом деле для ListBox, то вы можете сделать это следующим образом:

<ListBox x:Name="userListBox" Margin="10" ItemTemplate="{DynamicResource MyCustomTemplate}" /> 
Смежные вопросы