我有我的 xaml 代碼
<ListView x:Name="ListVideo"
ItemsSource="{x:Bind ScreenList}"
VerticalAlignment="Stretch"
FlowDirection="LeftToRight"
Grid.Row="1"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
ScrollViewer.HorizontalScrollBarVisibility="Hidden">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<controls:UniformGrid></controls:UniformGrid>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Background="White"
BorderBrush="White"
BorderThickness="1">
<SwapChainPanel x:Name="swapChain"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate></ListView>
withScreenList
是ObservableCollection
. 所以問題是如何SwapChainPanel
在 ListView 中添加新的?
我打算添加SwapChainPanel
專案,并且每個專案我都使用 DirectX 來渲染視頻,所以我想SwapChainPanel
在代碼隱藏中獲取物件專案以進行處理。
謝謝。
uj5u.com熱心網友回復:
所以問題是如何在 ListView 中添加新的 SwapChainPanel
您已將 SwapChainPanel 放置在 Listview DataTemplate 中,當前 listviewItemsSource
為 ObservableCollection。所以你只需要將新專案添加到 ObservableCollection 中,串列視圖會自動呈現新專案。
所以我想在代碼隱藏中獲取物件 SwapChainPanel 項
您可以使用ContainerFromItem方法獲取 itemContainer,并找到名稱為 in 的 swapChain ContentTemplateRoot
。
var container = MyList.ContainerFromItem(MyList.Items[0]) as ListViewItem;
var swapChain = (container.ContentTemplateRoot as Grid).FindName("swapChain");
更新
正如下面的 Hoka Biu 評論,您還可以在 SwapChainPanel Loaded 事件中獲取 swapChain 實體。
<SwapChainPanel Loaded="swapChain_Loaded"/>
private void swapChain_Loaded(object sender, RoutedEventArgs e)
{
var swapChain = sender as SwapChainPanel;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/478216.html
標籤:C# xml winrt-xml winui-3 维努伊