Estou exibindo um ListView usando WinUI3. Estou exibindo um array de structs, mas é possível exibir um índice de array que não faz parte do struct em XAML?
<ListView>
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:MyData">
<TextBlock Text="{x:Bind Index}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Vi que no WPF, você pode fazer como o seguinte, mas resulta em um erro no WinUI3. Não existe tal método no WinUI3?
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=ListViewItem}, Path=(ItemsControl.AlternationIndex)}" />
Como parece que não há uma maneira fácil de fazer isso, você deve manter o controle do índice no item (
MyData
) em si. Mas se você não puder fazer isso, você pode tentar o que eu inventei. Funciona. O Visual Studio vai gritar com você, mas funciona.Primeiro, você precisa instalar o pacote CommunityToolkit.WinUI.Extensions NuGet.
Então:
ATUALIZAR
Você precisa envolver o
DataTemplate
conteúdo com a,ListViewItem
a menos que oDataContext
não seja definido.