的指標:如何知道我在XAML像這樣的動態創建的TabItem
<controls:TabControl Grid.Row="0" BorderThickness="0" Background="White"
ItemsSource="{Binding TabList, Mode=TwoWay, Converter={StaticResource TabConverter}}"
SelectedItem="{Binding CurrentItem, Mode=TwoWay}"/>
在視圖模型我有:
private TabItem currentItem;
public TabItem CurrentItem
{
get { return currentItem; }
set
{
//currentItem.Content
currentItem = value;
int index = currentItem.TabIndex; //IT GIVES STRANgE INDEX ON DEBUGGING ob Tab click (like 22255788586)
OnPropertyChanged("CurrentItem");
}
}
但這種標籤列表(以XAML)是動態生成這樣:
public void AddVersion(ProgramVersion pv) //it creates the TabList
{
if (pv != null)
{
if (index == -1)
{
TabList.Add(new ProgramVersionItemViewModel(pv));
OnPropertyChanged("TabList");
}
}
}
每次按下按鈕我調用函數AddVersion(version);並將它添加到TabList中。
問題是當我點擊CurrentItem(動態創建的TabItems(TabList)的數量),然後它給了很大的奇怪地址(如222557456)。
我的方式獲取當前項目的索引是錯誤的嗎? (int index = currentItem.TabIndex;)?
'TabIndex'是*不*標籤的指數 - 它的存在訂購控件,而對照組之間按TAB鍵循環。 – Luaan 2014-09-04 16:16:54
** TabIndex **並不表示TabControl中的項目索引。由於您有ViewModel List,** SelectedItem **可能不會返回TabItem,它應該引用綁定到當前TabItem的ViewModel。所以您可以試試這個** TabList.IndexOf(CurrentItem)**來代替。 – Claw 2014-09-05 02:47:43
@Luaan所以如何在這裏做解決方案,以瞭解當前項目單擊的內容在CurrentItem集合內? – user3735822 2014-09-05 09:40:42