将索引数组中的更多列绑定到一个滚动查看器WPF - C#
问题描述:
我需要在ItemsSource中绑定一个对象数组,但不以标准方式绑定,即在行上,但在列上绑定,因此两个不同的xaml对象继承。 让我解释一下,我现在已经解决了这样:将索引数组中的更多列绑定到一个滚动查看器WPF - C#
但我需要打开视图,并使其到电网,以及:
在这种情况下,我有两个对象绑定到每一行,所以我发现它硬连接数组中的对象在两个不同的列上同时连续,我的xaml代码:
<surface:SurfaceScrollViewer x:Name="listDocumentsVisibility" Visibility="Visible" Grid.Column="1" Grid.Row="0" Margin="15,36,15,35" Background="GhostWhite" VerticalScrollBarVisibility="Hidden" PanningMode="Both">
<ItemsControl ItemsSource="{Binding Path=AttachmentsFileList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<surface:SurfaceButton Tag="{Binding ATID}" Click="Meeting_Click">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="1*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Margin="10,5,0,0" Grid.Column="0">
<Image Width="26" Margin="5,10,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" Source="/Resources/Images/icon-document-browser.png"></Image>
<TextBlock FontFamily="{StaticResource Lato Light}" HorizontalAlignment="Left" Margin="38,-30,0,0" FontSize="12" Text="{Binding Name}"></TextBlock>
<TextBlock FontFamily="{StaticResource Lato Light}" HorizontalAlignment="Left" Margin="38,-15,0,0" FontSize="9" Foreground="#6C6C6C" Text="{Binding LastOpenDate}"></TextBlock>
<TextBlock FontFamily="{StaticResource Lato Light}" HorizontalAlignment="Left" Margin="38,-3,0,0" FontSize="9" Foreground="#6C6C6C" Text="istituto"></TextBlock>
</StackPanel>
<StackPanel Grid.Row="0" Margin="10,5,0,0" Grid.Column="1">
<Image Width="26" Margin="5,10,0,0" HorizontalAlignment="Left" VerticalAlignment="Center" Source="/Resources/Images/icon-document-browser.png"></Image>
<TextBlock FontFamily="{StaticResource Lato Light}" HorizontalAlignment="Left" Margin="38,-30,0,0" FontSize="12" Text="{Binding Name}"></TextBlock>
<TextBlock FontFamily="{StaticResource Lato Light}" HorizontalAlignment="Left" Margin="38,-15,0,0" FontSize="9" Foreground="#6C6C6C" Text="{Binding LastOpenDate}"></TextBlock>
<TextBlock FontFamily="{StaticResource Lato Light}" HorizontalAlignment="Left" Margin="38,-3,0,0" FontSize="9" Foreground="#6C6C6C" Text="istituto"></TextBlock>
</StackPanel>
</Grid>
</StackPanel>
</ControlTemplate>
</Button.Template>
</surface:SurfaceButton>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</surface:SurfaceScrollViewer>
显然整体是动态的,这取决于我收到的其他电话。
可以绑定两个数组索引,一个在同一行中的另一个旁边? 谢谢
答
使用一个ItemsControl
并设置ItemsPanel
成为UniformGrid
与Columns=2
,只要确保你设置VerticalAlignment="Top"
,这样的项目没有得到伸展,敷在整个事件中一个ScrollViewer
如果您需要:
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding MyItems}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="2" VerticalAlignment="Top" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
+0
我可能拼错了这个问题,但我需要绑定同一行上的两个对象,只有一个索引循环,我该如何在两个StackPanel的同一行中绑定索引0和索引1? –
Presumo sia stato tradotto con l'aiuto di un traduttore automatico。 Sfortunatamente in inglese anche leggendolo 2 volte io non sono riuscita a capire esattamente cosa现在是位置子集2 elementi di 1排行榜sulla stessa riga ...在italianocosìmagari posso darti una mano中的vuoi ridirlo? –
Si,un traduttore esatto,non ho tempo per scriverlo di mia zucca :) comunque il mio problemaèche ogni riga che vado a bindare,deve avere due elementi dell'array,ma di default l'array me ne da uno ogni ciclo di索引,giusto? perciò,come posso bindare l'elemento 0,e l'elemento 1 sulla stessa riga? calcola che poisaràdinamico eandràavanti con l'elemento 2 e 3 ... mi sono spiegato? –
E'un problema piuttosto particolare,ma non credo tu possa risolverlo direttamentecosì,se dovessi farlo io creerei un oggetto che contiene una coppia di dati dove andrei ad aggiungere gli elementi dell'array ricevuto e farei il binding su una collection di oggetti“ coppia”。 Ma non essendo addentro al tuo progetto non so quanto la cosa sia applicabile。 –