2012-09-09 43 views
0

我的應用程序中有一個ListView,它有一個ItemTemplate有三個TextBlocks。 Listview的ItemsSource屬性設置爲名爲「units」的名爲「ConversionEngine」的類中的名稱...將ListView項目的子項目綁定到另一個數據

所以我的問題是:我想綁定ItemTemplate中的第二個和第三個TextBlocks到另一個List相同的「ConversionEngine」類。但我不能,因爲列表視圖的ItemsSource屬性設置爲「單位」字符串列表和ItemTemplate的所有子項繼承「單位」列表。我如何將子項綁定到另一個列表中,在同一類ConversionEngine中,還是我定義的其他類中?謝謝...這裏是我的代碼:

的列表視圖:

<ListView x:Name="allunits" **ItemsSource="{Binding units}**" SelectionMode="Single" IsItemClickEnabled="True" ItemClick="allunit_itemclick" SelectedIndex="-1" ItemTemplate="{StaticResource Standard500x130ItemTemplate}"/> 

ItemTemplate模板代碼:

<DataTemplate x:Key="Standard500x130ItemTemplate"> 

     <Grid Height="110" Width="480" Margin="10" > 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="110" Height="110"> 
       <Image Source="{Binding Image}" Stretch="UniformToFill"/> 
      </Border> 
      <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0"> 
       **<TextBlock Text="{Binding}" Style="{StaticResource TitleTextStyle}"/>** 
       **<TextBlock Text="{Binding ??}" Style="{StaticResource TitleTextStyle}/>** 
       **<TextBlock Text="{Binding ??}" Style="{StaticResource TitleTextStyle}"/>** 
      </StackPanel> 
     </Grid> 
    </DataTemplate> 

回答

0

ItemsControl的項目只能綁定到UI元素,東西可以使用相對訪問來源和它們給出的datacontext的部分。我的建議是將您的不同列表合併到一個列表中,或者至少從您的綁定屬性返回分組項目。因此,要麼:

public class CompositeItem 
{ 
    Item item;    //item from your first list 
    Item2 item2;    //item from your second list 
    . . . 
} 

//main class 
List<CompositeItem> items; //list of combined items 

或:

public Tuple<Item, Item2 . . . > items //bind your items control to this 
{ 
    List<Tuple<Item, Item2 . . >> newListOfItems = new Tuple<Item, Item2 . . >(); 
    for(int i = 0; i < items.count; i++) 
    { 
     newListOfItems.add(new Tuple<Item, Item2 . . >(list1[i], list2[i] . . .)); 
    } 
    return newListOfItems; 
} 
+0

感謝,包裹整個列表和對象到另一個類,並創建一個列表出來,並結合,這是最終的解決方案,你提到的..謝謝,開心編碼。 –

相關問題