Как установить фокус на сетку данных, помещенную в tabcontrol - PullRequest
1 голос
/ 01 июня 2010

У меня есть tabcontrol, и я помещаю сетку данных в tabcontrol ... Но я не мог сфокусировать этот Datagrid на событии загрузки ... Фокус означает, что я не мог перемещаться по нему через клавиатуру ... проблема только внутри вкладки, иначе она работает нормально ...

Мой код xaml выглядит следующим образом ...

<Window x:Class="WpfApplication12.MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="MainWindow" Height="350" Width="525" WindowState="Maximized" >
 <Border DockPanel.Dock="Top">
  <Grid>
  <TabControl x:Name="tcOpenForms" SelectedIndex="0" TabStripPlacement="Bottom" >
    <DataGrid HorizontalAlignment="Left" AutoGenerateColumns="False" Width="359" Name="grd_boview" Canvas.Left="12" Canvas.Top="12" Height="640" IsReadOnly="True" SelectionMode="Single" HorizontalScrollBarVisibility="Disabled">
     <DataGrid.Columns>
      <DataGridTextColumn Header="BO.ID" Binding="{Binding acct_code}" />
      <DataGridTextColumn Binding="{Binding acct_name}" Header="BO.Name" />
     </DataGrid.Columns>
    </DataGrid>
   </TabControl>
   </Grid>
 </Border>
</Window>

Мой код C # выглядит следующим образом

  namespace WpfApplication12
{
 /// <summary>
 /// Interaction logic for MainWindow.xaml
 /// </summary>
 public partial class MainWindow : Window
 {
  public MainWindow()
  {
   InitializeComponent();
   Loaded += new RoutedEventHandler(MainWindow_Loaded);
  }

  void MainWindow_Loaded(object sender, RoutedEventArgs e)
  {

   SqlConnection sqlcon = new SqlConnection("server=ibmserver;uid=sa;pwd=zillion;database=ecdslxyz20102011");
   SqlCommand sqlcmd = new SqlCommand("select * from account", sqlcon);
   SqlDataAdapter sqldac = new SqlDataAdapter(sqlcmd);
   DataSet ds = new DataSet();
   sqldac.Fill(ds, "Test");
   grd_boview.ItemsSource = ds.Tables["Test"].DefaultView;
   grd_boview.Focus();
   grd_boview.SelectedIndex = 0;
  }
 }
}

(1) Обратите внимание, что фокус означает, что я не могу перемещаться по сетке данных через клавиатуру

(2) Это должно быть в событии загрузки ...... Потому что оно отлично работает в других событиях ...

(3) Datagrid должен быть размещен внутри элемента управления вкладками ... Потому что он отлично работает вне элемента управления вкладками .....

Надеюсь, ты мне поможешь ...

Заранее спасибо

...