2010-08-18 48 views
0

我有一個ListSource,並將itemssource設置爲DataRow的ObservableCollection。假設每個DataRow在這個例子中有5列。綁定到WPF中當前數據項的默認索引器的語法?

在列表框的DataTemplate中,我有5個文本塊(每列1個)。我的問題是我如何綁定到行的索引器來獲取列值?

這裏是我的嘗試,但沒有顯示,所以我必須有語法錯誤:

<DataTemplate> 
    <StackPanel> 
     <TextBlock Text="{Binding Path=.[0]}" /> 
     <TextBlock Text="{Binding Path=.[1]}" /> 
     <TextBlock Text="{Binding Path=.[2]}" /> 
     <TextBlock Text="{Binding Path=.[3]}" /> 
     <TextBlock Text="{Binding Path=.[4]}" /> 
    </StackPanel> 
</DataTemplate> 

我知道索引可以在綁定使用,因爲我做了這樣的事情已經:

<DataTemplate> 
    <StackPanel> 
     <TextBlock Text="{Binding Path=Collection[0].Name}" /> 
     <TextBlock Text="{Binding Path=Collection[1].Name}" /> 
     <TextBlock Text="{Binding Path=Collection[2].Name}" /> 
     <TextBlock Text="{Binding Path=Collection[3].Name}" /> 
     <TextBlock Text="{Binding Path=Collection[4].Name}" /> 
    </StackPanel> 
</DataTemplate> 

任何幫助糾正我的語法將不勝感激。

回答

0

你的語法應該做。但是,以下必須也:

<DataTemplate> 
    <StackPanel> 
     <TextBlock Text="{Binding Path=[0]} /> 
     <TextBlock Text="{Binding Path=[1]} /> 
     <TextBlock Text="{Binding Path=[2]} /> 
     <TextBlock Text="{Binding Path=[3]} /> 
     <TextBlock Text="{Binding Path=[4]} /> 
    </StackPanel> 
</DataTemplate> 

檢查您的ItemsSource。它真的提供了一個int類型的索引器嗎?也許你有另一種類型的索引器,甚至沒有索引。也許這是另一個超出你期望的對象?