항목이있는 GridView
과 특정 항목에 대한 세부 정보가있는 배열이 내 GridView
에 있습니다. 내 코드를 디버깅 할 때Windows 8 C# GridView e.ClickedItem
private void GridView1_ItemClick(object sender, ItemClickEventArgs e)
{
int test = GridView1.Items.IndexOf(e.ClickedItem);
}
은 test
항상 값 -1
있을 것이다 int 형 : 나는 클릭 된 항목의 인덱스를 얻으려면 , 나는 내가 ListView
와 함께 이전에 사용 된 것과 동일한 코드를 사용했습니다. 나는 이것이 작동하지 않는 이유에 대해 아무런 단서가 없다. 그리고 나는 너희 중 하나가되기를 바라고있다.
편집 : 모든 답장을 보내 주셔서 감사합니다. 여기에 몇 가지 추가 정보가 있습니다 : ClickedItem
의 색인 만 캡처하기 때문에 나는 SelectionMode
을 비활성화했습니다. 색인이 제 정보 배열과 연결되어 있기 때문에 색인을 알고 싶습니다.
내 SelectionMode
이 '없음'으로 설정되어 있으므로 SelectedItem/SelectedIndex를 캡처 할 수 없습니다. 나는 그것들을 가능하게하려고했지만, 다시 '-1'값을 받았다.
편집 # 2 : 항목을 수동으로 추가 했으므로 ItemSource
을 설정하지 않았습니다. 이것이 문제가 될 수 있습니까? 내 ListView
에는 아무런 문제가 없었습니다. ItemSource
.
편집 3 :
C# 코드 :
TextBlock content_textblock = new TextBlock();
content_textblock.Width = 250;
content_textblock.Text = total;
content_textblock.TextWrapping = TextWrapping.Wrap;
content_textblock.Foreground = (SolidColorBrush)Application.Current.Resources["ListViewItemOverlayForegroundThemeBrush"];
content_textblock.Style = (Style)Application.Current.Resources["CaptionTextStyle"];
content_textblock.LineHeight = 30;
content_textblock.Padding = new Thickness(5, 0, 10, 15);
content_textblock.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
content_textblock.Arrange(new Rect(0, 0, content_textblock.DesiredSize.Width, content_textblock.DesiredSize.Height));
StackPanel content_stackpanel = new StackPanel();
content_stackpanel.Margin = new Thickness(0, 250 - content_textblock.ActualHeight, 0, 0);
content_stackpanel.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
content_stackpanel.Height = content_textblock.Height;
content_stackpanel.Width = 250;
content_stackpanel.Background = (SolidColorBrush)Application.Current.Resources["ListViewItemOverlayBackgroundThemeBrush"];
content_stackpanel.Children.Add(content_textblock);
ImageBrush content_brush = new ImageBrush();
content_brush.ImageSource = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri("http://ic.tweakimg.net/ext/i/thumbs_fpa_small/1357208162.jpeg")); //it is a placeholder, haha
GridView1.Items.Add(new GridViewItem { Background = content_brush, Content = content_stackpanel, Width = 250, Height = 250 });
XAML : 없음 인덱스가 선택되면
<GridView x:Name="GridView1" Margin="0,29,0,0" Grid.Row="2" SelectionMode="None" ItemClick="GridView1_ItemClick" IsItemClickEnabled="True"/>
도움이 http://www.telerik.com/community/forums/silverlight/gridview/ 수 있을까 gridview-items-indexof-result-1.aspx –
나는 그것을 시험해 보았다. 그것은 나를 위해 일한다. 어떻게 GridView를 묶는가? –
btw. 왜 색인이 필요합니까? –