2013-03-16 67 views
0

我有這樣的ListView與TextBock和CheckBox:如何獲得ListView項標識

<ListView x:Name="ActiveTasksListView" ItemsSource="{Binding Path=ActiveTasks}" SelectedItem="{Binding Id}"> 

<ListView.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel Orientation="Vertical" Margin="37,0,17,0" /> 
    </ItemsPanelTemplate> 
</ListView.ItemsPanel> 

<ListView.ItemTemplate> 
    <DataTemplate> 
     <Border Background="White"> 
      <TextBlock Text="{Binding Name}" /> 
      <CheckBox Click="CheckBox_Click_1" /> 
     </Border> 
    </DataTemplate> 
</ListView.ItemTemplate> 

</ListView> 

如果我在MessageDialog()

+0

你在哪裏需要示出了T他在'TextBlock'中有'Id' – 2013-03-16 00:38:25

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2013-03-16 00:38:27

+0

你有沒有試過通過'ListView.Items [「key」]'來獲取它,或者你不能得到'Tag'屬性..? – MethodMan 2013-03-16 01:34:36

回答

0
void CheckBox_Click_1(object sender, RoutedEventArgs e) 
{ 
    var cb = sender as CheckBox; 
    dynamic itemVM = cb.DataContext; 
    var id = itemVM.Id; 
} 
0
上覆選框單擊單擊項目的比我需要出示身份證(從數據源)

使用VisualTreeHelper,並點擊框元素裏,你可以找到一個ListViewItem,然後獲取其ID屬性

void CheckBox_Click_1(object sender, RoutedEventArgs e) 
{ 
    var item = sender as DependencyObject; 

    while (!(item is ListViewItem)) 
    { 
     item = VisualTreeHelper.GetParent(item); 
    } 

    var id = ((ObjectClass) item).Id; 
}