A wiec podczas tworzenia tego napotkałem 2 problemy.
- jak podzielić wyrazy oddzielone ',' z button.content?
- jak zrobić żeby nie wywalalo mi błędu
"An unhandled exception of type 'System.ArgumentException' occurred in PresentationCore.dll
Additional information: Określony obiekt Visual jest podrzędny w stosunku do innego obiektu Visual lub elementu głównego CompositionTarget."
gdy wrzucam MainGrid.Children.Add(button); do foreacha żeby dodwało mi kilka notatek a nie tylko 1.
mój kod c#
Kopiuj
public partial class WinNotes : Window
{
void btn_Click(object sender, RoutedEventArgs routedEventArgs)
{
OpenedNote.Visibility = Visibility.Visible;
DataBase _dbNotes = new DataBase();
DataTable _dtNotes = new DataTable();
string[] splitnote = button.Content.ToString().Split(',');
_dtNotes = _dbNotes.GetDataTable($"select tresc_notatki,data,id_uzytkownika from notatki where id_notatki ={splitnote[0].ToString()}");
foreach (DataRow _dwNotes in _dtNotes.Rows)
{
txtNoteCont.Text = _dwNotes[0].ToString();
txtDateNote.Text = _dwNotes[1].ToString();
DataTable _dtIdd = new DataTable();
DataBase _dbIdd = new DataBase();
_dtIdd = _dbIdd.GetDataTable($"select imie,nazwisko from uzytkownicy where id_uzytkownika={_dwNotes[2].ToString()}");
foreach (DataRow _dwIdd in _dtIdd.Rows)
{
txtNameLastName.Text = $"{_dwIdd[0].ToString()} {_dwIdd[1]}";
}
}
}
public Button button = new Button();
public WinNotes(string userName)
{
InitializeComponent();
Random rnd = new Random();
int rnd1 = rnd.Next(1, 510);
int rnd2 = rnd.Next(1, 270);
button.Margin = new Thickness(rnd1, rnd2, 0, 0);
button.Width = 120;
button.Height = 120;
button.Background = Brushes.Khaki;
button.HorizontalAlignment = HorizontalAlignment.Left;
button.VerticalAlignment = VerticalAlignment.Top;
button.FontSize = 15;
button.FontWeight = FontWeight.FromOpenTypeWeight(10);
button.Name = "btn";
button.Click += btn_Click;
DataTable _dtNote = new DataTable();
DataBase _dbNote = new DataBase();
_dtNote =
_dbNote.GetDataTable(
$"select * from notatki where id_raportu={MainWindow.idrap}");
foreach (DataRow _dw in _dtNote.Rows)
{
DataTable _dtId = new DataTable();
DataBase _dbId= new DataBase();
_dtId = _dbId.GetDataTable($"select imie,nazwisko from uzytkownicy where id_uzytkownika={_dw[1].ToString()}");
foreach (DataRow _dwId in _dtId.Rows)
{
button.Content = new TextBlock
{
Inlines = { $"{_dw[4].ToString()}", ",", new LineBreak(), $"{_dwId[0].ToString()}",",",new LineBreak(), $"{_dwId[1].ToString()}",",",new LineBreak(), $"{_dw[3].ToString()}" }
};
}
}
MainGrid.Children.Add(button);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
OpenedNote.Visibility = Visibility.Hidden;
txtDateNote.Text = string.Empty;
txtNameLastName.Text = string.Empty;
txtNoteCont.Text = string.Empty;
}
}
kod xaml:
Kopiuj
<Grid>
<Grid.Background>
<ImageBrush ImageSource="C:\Users\Szymon\Desktop\PRACA\PRACA RAPORT8D\tablica.jpg"/>
</Grid.Background>
<Grid Margin="20,20,20,20" x:Name="MainGrid">
</Grid>
<Grid x:Name="OpenedNote" Visibility="Hidden" >
<Rectangle x:Name="rectangle" HorizontalAlignment="Left" Height="320" Stroke="Black" VerticalAlignment="Top" Width="455" Margin="115,80,0,0" RenderTransformOrigin="0.5,0.5" RadiusX="40" RadiusY="40" StrokeThickness="2" Opacity="0.8" Fill="Khaki"/>
<Button Width="20" Margin="535,100,137,339" Background="{x:Null}" BorderBrush="{x:Null}" Click="Button_Click" FontWeight="Bold" FontFamily="Blackoak Std">X</Button>
<TextBlock x:Name="txtNoteCont" HorizontalAlignment="Left" Margin="145,110,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Height="210" Width="390"/>
<TextBlock x:Name="txtNameLastName" HorizontalAlignment="Left" Margin="365,325,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="170"/>
<TextBlock x:Name="txtDateNote" HorizontalAlignment="Left" Margin="400,341,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="135"/>
</Grid>
</Grid>
zdjecie :
Nie ładuje się z powodu że nie może podzielić button.content i pobrać 1 wyrazu -id_notatki i na podstawie tego załadować dane. 
ToString()
z klasyButton
?