2014-11-03 5 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> 

편집 : 마이크의 의견을 바탕으로 오전 10시 8분 2014년 11월 3일

, 나는 변화를했다.

<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

값이 작고 고정 된 값 집합이있는 경우 데이터 그리드가 과도합니다. 각 셀에 적절한 값으로 묶인 텍스트 블록을 배치하고 그리드를 설정하기 만하면됩니다. 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>