1
ich habe zwei DataGrid
Concour
und Epruve
ich will Epreuve
Shows machen, wenn eine Reihe von Concour
ausgewählt ist .. mein Problem ist, wie der Zugang zu den DataGrid
Epreuve
, um es zu füllen von MySQL
.Zugriff auf Datagrid in anderen DataGrid.RowDetailsTemplate
Das ist, was ich
XAML
<DataGrid x:Name="Concours" IsReadOnly="True" AutoGenerateColumns="True" CanUserReorderColumns="True" CanUserResizeColumns="True" CanUserResizeRows="False" CanUserSortColumns="True" SelectionChanged="Concour_SelectionChanged" HorizontalAlignment="Left" Margin="288,48,0,0" VerticalAlignment="Top" Height="345" Width="652">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid x:Name="Epreuve" IsReadOnly="False" CanUserAddRows="True" CanUserDeleteRows="True" CanUserReorderColumns="True" CanUserResizeColumns="True" CanUserSortColumns="True" CanUserResizeRows="False" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn Header="Code" Binding="{Binding Code}"/>
<DataGridTextColumn Header="Désignation" Binding="{Binding Designation}"/>
<DataGridTextColumn Header="Coefficient" Binding="{Binding Coef}"/>
<DataGridTextColumn Header="Date" Binding="{Binding Date}"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
CS versucht
private void Concour_SelectionChanged (object sender, EventArgs e)
{
//Get the First Cell Value
DataTable dt = new DataTable();
dt = ((DataView)Concours.ItemsSource).ToTable();
List<String> L = new List<string>();
foreach (DataRow row in dt.Rows)
{
L.Add((String)row[0]);
}
int row_number = Concours.SelectedIndex;
//Connect To DataBase (gestion_concour)
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
builder.Server = "127.0.0.1";
builder.UserID = "root";
builder.Password = "root";
builder.Database = "gestion_concour";
MySqlConnection connection = new MySqlConnection(builder.ToString());
connection.Open();
//Fill Epreuve
String q = "SELECT * FROM gestion_Concour.concour WHERE Code = @Code";
MySqlCommand cmd = new MySqlCommand(q, connection);
cmd.CommandText = q;
cmd.Parameters.AddWithValue("@Code", L[row_number]);
cmd.ExecuteNonQuery();
MySqlDataAdapter DA = new MySqlDataAdapter(cmd);
DataTable DT = new DataTable("Epreuve");
DA.Fill(DT);
Epreuve.ItemSource = DT.DefaultView;
DA.Update(DT);
connection.Close();
}
und ich habe diesen Fehler
Der Name 'Epreuve' existiert nicht im aktuellen Kontext
Ich glaube, ich somthing zu tun haben, wie Itemssource = " {Binding Epreuve} "das hat nicht funktioniert .. aber ich denke, einige Änderungen und es wird –