2012-10-27 99 views
0

我將ObservableCollection<Employe>設置爲ListBox.ItemsSource的來源,併爲ListBox.ItemsSource設置了一些DataTemplate要通過它的密鑰獲取價值,從其他字典通過XAML

XAML模板:

<DataTemplate x:Key="tmpEmploye"> 
    <Border BorderThickness="3" BorderBrush="Gray" CornerRadius="5"> 
     <StackPanel Orientation="Vertical"> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding Path=Surname}" 
          HorizontalAlignment="Stretch" Margin="2" 
          FontWeight="Bold" TextWrapping="Wrap"/> 
       <TextBlock Text="{Binding Path=Name}" 
          HorizontalAlignment="Stretch" Margin="2"/> 
       <TextBlock Text="{Binding Path=Patronymic}" 
          HorizontalAlignment="Stretch" Margin="2" 
          TextWrapping="Wrap"/> 
      </StackPanel> 
      <TextBlock Text="{Binding Path=Post}" Foreground="Gray" 
         HorizontalAlignment="Stretch" Margin="2" 
         FontStyle="Italic" TextWrapping="Wrap"/> 
     </StackPanel> 
    </Border>        
</DataTemplate> 

XAML的列表框:

<ListBox x:Name="lbEmployees" x:FieldModifier="internal" 
     ItemTemplate="{StaticResource tmpEmploye}" HorizontalContentAlignment="Stretch"/> 

結果:

enter image description here

看,Employee類有一個Post屬性,它是一個記錄索引從ObservableDictionary<Int64, String>(我的一些課)。您可以看到'-1'值,但我需要從我的ObservableDictionary<Int64, String>對象中獲取此密鑰的值。我可以獲取必要的值並通過XAML代碼顯示它嗎?

回答

-1

您可以編寫一個IMultiValueConverter,並將Post屬性和您的字典綁定到它。

請參閱http://msdn.microsoft.com/en-us/library/system.windows.data.imultivalueconverter.aspx

+0

謝謝。我今天會讀。 –

+0

轉換器的作用是將一個值轉換爲另一個值。布爾到能見度轉換器。轉換器從不會被用於做一些業務邏輯操作。 –

+0

@DJ看看他想要達到的目標,這不是商業邏輯,而是描述翻譯的基本ID。我發現使用數值轉換器沒有任何問題。 怎麼樣做一個建設性的建議,而不是隻是downvote別人的~~~ –