2017-09-08 41 views
0

私はmainwindowにデータグリッドを持っており、DataGridには詳細ボタンがあります。私は別のウィンドウで詳細ボタンの表示データ(行)をクリックしたいと思います。テキストブロックのみ。WPFはデータグリッドから別のウィンドウにデータを表示

enter image description here

グリッドXAML

<DataGrid x:Name="dataGrid1" Grid.Column="1" Grid.Row="1" RowHeaderWidth="0" BorderBrush="{x:Null}" FontSize="14" FontFamily="Verdana" CanUserResizeRows="False" IsReadOnly="True" RowDetailsVisibilityMode="Visible" ClipboardCopyMode="None" AutoGenerateColumns="False" CanUserReorderColumns="False" CanUserSortColumns="False" AutomationProperties.IsColumnHeader="True" AutomationProperties.IsOffscreenBehavior="Onscreen" CellStyle="{DynamicResource DataGridCellStyle1}" CanUserResizeColumns="False" GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="#FF0194CA" Foreground="Black" HorizontalScrollBarVisibility="Disabled" Background="{x:Null}" UseLayoutRounding="False" VerticalScrollBarVisibility="Visible" SelectionMode="Single"> 
     <DataGrid.Columns> 
      <DataGridTemplateColumn Header="Başlık" Width="500" CanUserResize="False"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=baslik}" FontSize="13" TextWrapping="Wrap" Padding="10" Background="{x:Null}"/> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
      <DataGridTemplateColumn Header="Büyüklük" Width="100" CanUserResize="False"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=metrekare}" FontSize="13" TextWrapping="Wrap" Padding="10"/> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
      <DataGridTemplateColumn Header="Konum" Width="196" CanUserResize="False"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Path=mevkii}" FontSize="13" TextWrapping="Wrap" Padding="10"/> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
      <DataGridTemplateColumn Header="Detay" CanUserResize="False" Width="Auto"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <Button Content="Ilan Detayları" Click="DetayButton_Click" FontSize="13" FontFamily="Verdana" Padding="10" Margin="0,10,26,10" /> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

メインウィンドウのDataGridプロセス

​​

答えて

0

あなたがクリックされたボタン(とあなたがしようとしているオブジェクトのIDをdeterminするobject senderを使用することができます受信する)し、SELECT * FROM YourTableHere where ID = @someattributeのようなクエリをパラメータ化します。

さらに詳しい情報を投稿すれば、さらに手伝うことができます。

+0

どのようにすればよいかわかりません。私はすべてのファイルを送ることができます。郵便または別の方法ですか? –

+0

SQL SELECT文を使用してデータベースから選択します。データベースを正しく実装しましたか? –

0

解決策が見つかりました。私は友人のために共有しています。 詳細ウィンドウです。

public partial class DetayWindow : Window 
{ 
    public DetayWindow() 
    { 
     InitializeComponent(); 
    } 

    public string baslik { get; set; } 
    public string yazi { get; set; } 
    public string tarih { get; set; } 
    public string mevkii { get; set; } 
    public string metrekare { get; set; } 
    public string tur { get; set; } 
    public string id { get; set; } 

    private void Window_Loaded_1(object sender, RoutedEventArgs e) 
    { 
     //textbox1.Text = sifre; 
     //text1.Text = kullaniciAdi; 

     idtext.Text = id; 
     turtext.Text = tur; 
     metrekaretext.Text = metrekare; 
     konumtext.Text = mevkii; 
     tarihtext.Text = tarih; 
     yazitext.Text = yazi; 
     basliktext.Text = baslik; 

    } 
} 

これはメインウィンドウのクリックボタンです。

 private void DetayButton_Click(object sender, RoutedEventArgs e) 
    { 
     DetayWindow pencere = new DetayWindow(); 
     string sorgu = "Select * From Gayrimenkul"; 
     DataSet dataSet = new DataSet(); 
     SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(sorgu, baglanti); 
     dataAdapter.Fill(dataSet); 

     int i = dataGrid1.SelectedIndex; 

     string veribaslik = dataSet.Tables[0].Rows[i]["baslik"].ToString(); 
     string veriyazi = dataSet.Tables[0].Rows[i]["yazi"].ToString(); 
     string veritarih = dataSet.Tables[0].Rows[i]["tarih"].ToString(); 
     string verimevkii = dataSet.Tables[0].Rows[i]["mevkii"].ToString(); 
     string verimetrekare = dataSet.Tables[0].Rows[i]["metrekare"].ToString(); 
     string veritur = dataSet.Tables[0].Rows[i]["tur"].ToString(); 
     string veriid = dataSet.Tables[0].Rows[i]["id"].ToString(); 

     pencere.baslik = veribaslik; 
     pencere.yazi = veriyazi; 
     pencere.tarih = veritarih; 
     pencere.mevkii = verimevkii; 
     pencere.metrekare = verimetrekare; 
     pencere.tur = veritur; 
     pencere.id = veriid; 

     pencere.ShowDialog(); 
    } 
関連する問題