2017-09-08 2 views
0

주 창에 DataGrid가 있고 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> 

MainWindow를 DataGrid 구성 프로세스

private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     SQLiteConnection yeni = new SQLiteConnection(baglanti); 
     yeni.Open(); 

     string sorgu = "Select * From Gayrimenkul"; 

     // SQLiteCommand komutislet = new SQLiteCommand(sorgu,baglanti); 
     DataSet dataSet = new DataSet(); 
     SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(sorgu, baglanti); 
     dataAdapter.Fill(dataSet); 

     dataGrid1.ItemsSource = dataSet.Tables[0].DefaultView; 
     yeni.Close(); 

    } 

답변

0

당신은 당신이하려는 당신이 클릭 버튼 (와 개체의 ID를 determin하기 위해 object sender을 사용할 수 있습니다 recieve) 다음 쿼리를 매개 변수화하여 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; 

    } 
} 

이것은 MainWindow 클릭 버튼입니다.

 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(); 
    } 
관련 문제