2010-06-16 73 views
0

在Silverlight中,我有一個DataContext設置爲類ViewModel的網格。
ViewModel包含項目列表(每個項目包含int ID和字符串文本)和一個標識當前活動項目(未選定項目)的整數「ID」。
我想用ListBox構造xaml,其中激活的項目具有另一種顏色。我該怎麼做?如何將Listbox綁定到兩個屬性?

具體來說,在XAML中,我有:

<Grid DataContext="ModelView"> 
    <ListBox ItemsSource="Questions"> 
     <ListBox.ItemTemplate>   
      <TextBlock Text="{Binding ID}" /> 
      <TextBlock Text="{Binding Text}" />   
     </ListBox.ItemTemplate> 
    </ListBox> 
    <TextBlock Text="{Binding ID}" /> 
</Grid>` 

如何設置我的一個(且只有一個)在列表框項的顏色,基於屬性ID在模型視圖?

還有一個問題 - 當我更改活動項目時 - 如何刷新ListBox?

+0

對不起,如果它只是我 - 但我不知道要求是什麼。 – 2010-06-16 21:15:36

+0

這個xaml只是簡單的例子。我找到解決方案,但不喜歡它 - 我必須用布爾屬性IsActivated和靜態屬性ViewModel擴展項目。是激活當前項目的壓縮ID與活動項目的ID。 – Gabriel 2010-06-18 14:24:53

回答

0

我在XAML:

如何根據屬性ID在模型視圖在列表框中第一個(也是唯一一個)項目的設置我的色彩?

+0

@Gabriel:這種類型的附加信息屬於問題部分。我繼續並在那裏添加它。我建議你刪除這個答案,提高獲得正確答案的機會。 – mjv 2010-06-17 05:29:29

+0

如何刪除我的答案? – Gabriel 2010-06-17 10:07:32

0

您的ItemTemplate似乎不是有效的順便說一句。 !

我會嘗試使用觸發器到模板的高亮列表框項目

在網格我這樣做一個例如

<DataTemplate> 
    <Image x:Name="MyImage" Source="Images/corrected.png" Width="64" Height="64" /> 
    <DataTemplate.Triggers> 
     <DataTrigger Binding="{Binding YourConditionValue}" Value="0"> 
      <Setter TargetName="MyImage" Property="Source" Value="Images/notCorrected.png" /> 
     </DataTrigger> 
     </DataTemplate.Triggers> 
    </DataTemplate> 

這可能是一個解決方案,但你需要自己去查

相關問題