[英]Access datatemplate element in a listbox?
我有一個由列表框中的數據模板生成的圖像控件。 如何通過代碼訪問此圖像? 我嘗試了這個,但是由於我正在開發Metro應用程序,因此無法設置IsSynchronizedWithCurrentItem。
我擁有的xaml是:
<ListBox x:Name="options_stack" HorizontalAlignment="Left" Margin="198,569,0,33" Width="603" Background="#FF603C74" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollMode="Auto" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image x:Name="options_image" Source = "{Binding}" Stretch="Fill" Width="166" MaxHeight="156" MaxWidth="166" MinHeight="156" MinWidth="166" Tapped="apply_image_tapped" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
這將取決於您要通過訪問映像嘗試實現的目標。 您可以將其屬性綁定到視圖模型,並使用視圖模型進行控制。 您也可以將Image放在UserControl中,並在其中處理任何所需的操作。 您可以使用附加行為,也可以使用VisualTreeHelper掃描ListBox的可視樹(盡管這可能很慢)。
我想獲取竊聽圖像的路徑,所以這是我所做的:
Image tappedImage = new Image();
tappedImage = e.OriginalSource as Image;
textbox.Text = tappedImage.DataContext.ToString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.