2014-11-03 2 views
0

Предположим, у меня есть таблица 4x4, не более/меньше строк и столбцов. Значения взяты из расчетов в коде. hereЗначение привязки привязки к таблице

Каков наилучший способ создания и привязки данных? Использование datagrid или table?

Я использовал datagrid для столбцов, но не уверен, как обращаться со строками.

<DockPanel> 
     <DataGrid Name="dgTest" AutoGenerateColumns="False" IsReadOnly="True" CanUserResizeColumns="True" CanUserAddRows="False" ItemsSource="{Binding}"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="IVR" Binding="{Binding IVR}" /> 
       <DataGridTextColumn Header="Payment" Binding="{Binding Payment}" /> 
       <DataGridTextColumn Header="Call" Binding="{Binding Call}" /> 
      </DataGrid.Columns> 
     </DataGrid> 
    </DockPanel> 

Edit: 10:08 утра 11/03/2014

Основываясь на комментарий Майка, я сделал изменения.

<DockPanel> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="20" /> 
       <RowDefinition Height="20" /> 
       <RowDefinition Height="20" /> 
       <RowDefinition Height="20" /> 
      </Grid.RowDefinitions> 
      <TextBox Grid.Column="1">IVR</TextBox> 
      <TextBox Grid.Column="2">PAYMENT</TextBox> 
      <TextBox Grid.Column="3">CALL</TextBox> 
      <TextBox Grid.Row="1">SUCCESS</TextBox> 
      <TextBox Grid.Row="2">FAIL</TextBox> 
      <TextBox Grid.Row="3">TOTAL</TextBox> 
     </Grid> 
    </DockPanel> 

Тогда как привязать значения?

+0

Сетка данных, вероятно, переполнена, если у вас есть такой небольшой фиксированный набор значений. Я бы просто создал «Grid» и разместил текстовые блоки в каждой ячейке, привязанные к соответствующим значениям. DataGrid может быть более полезным, если вы хотите, чтобы пользователь мог копировать значения в буфер обмена таким образом, чтобы их можно было вставлять непосредственно в Excel с неповрежденным макетом. Если это не требование, я бы не стал беспокоиться. –

+0

@MikeStrobel, я обновил код. Как привязать значения? –

+0

'', например. –

ответ

0

Спасибо Mike Strobel, я использовал Grid плюс текстовые поля.

<DockPanel Margin="20"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="20" /> 
       <RowDefinition Height="20" /> 
       <RowDefinition Height="20" /> 
       <RowDefinition Height="20" /> 
      </Grid.RowDefinitions> 
      <TextBox Grid.Column="0" /> 
      <TextBox Grid.Column="1">IVR</TextBox> 
      <TextBox Grid.Column="2">PAYMENT</TextBox> 
      <TextBox Grid.Column="3">CALL</TextBox> 
      <TextBox Grid.Row="1">SUCCESS</TextBox> 
      <TextBox Grid.Row="2">FAIL</TextBox> 
      <TextBox Grid.Row="3">TOTAL</TextBox> 
      <TextBox Text="{Binding Path=IVR_S}" Grid.Row="1" Grid.Column="1" /> 
      <TextBox Text="{Binding Path=PAYMENT_S}" Grid.Row="1" Grid.Column="2" /> 
      <TextBox Text="{Binding Path=CALL_S}" Grid.Row="1" Grid.Column="3" /> 
      <TextBox Text="{Binding Path=IVR_F}" Grid.Row="2" Grid.Column="1" /> 
      <TextBox Text="{Binding Path=PAYMENT_F}" Grid.Row="2" Grid.Column="2" /> 
      <TextBox Text="{Binding Path=CALL_F}" Grid.Row="2" Grid.Column="3" /> 
      <TextBox Text="{Binding Path=IVR-T}" Grid.Row="3" Grid.Column="1" /> 
      <TextBox Text="{Binding Path=PAYMENT-T}" Grid.Row="3" Grid.Column="2" /> 
      <TextBox Text="{Binding Path=CALL-T}" Grid.Row="3" Grid.Column="3" /> 
     </Grid> 
    </DockPanel> 
Смежные вопросы