将索引数组中的更多列绑定到一个滚动查看器WPF - C#

问题描述:

我需要在ItemsSource中绑定一个对象数组,但不以标准方式绑定,即在行上,但在列上绑定,因此两个不同的xaml对象继承。 让我解释一下,我现在已经解决了这样:将索引数组中的更多列绑定到一个滚动查看器WPF - C#

enter image description here

但我需要打开视图,并使其到电网,以及:

enter image description here

在这种情况下,我有两个对象绑定到每一行,所以我发现它硬连接数组中的对象在两个不同的列上同时连续,我的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> 

显然整体是动态的,这取决于我收到的其他电话。

可以绑定两个数组索引,一个在同一行中的另一个旁边? 谢谢

+0

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? –

+0

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? –

+0

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。 –

使用一个ItemsControl并设置ItemsPanel成为UniformGridColumns=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? –