Я получаю из окна ввода список данных(email:password), далее эти данные должны идти в другое, основное окно приложения в виде списка ListBox. Это код XAML основного окна:
<ListBox Name="listBoxAccountList"
HorizontalContentAlignment="Stretch"
Grid.Row="2">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20"></ColumnDefinition>
<ColumnDefinition Width="100*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding ID}" />
<TextBlock Grid.Column="1" Text="{Binding Mail}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Это код C# окна ввода:
public partial class NewAccount : Window
{
class Acc
{
public int ID { get; set; }
public string Mail { get; set; }
}
class DataUser
{
public string Email { get; set; }
public string Password { get; set; }
}
public NewAccount()
{
InitializeComponent();
}
private void SaveCreatedAccount(object sender, RoutedEventArgs e)
{
MainWindow mainWindow = new MainWindow();
var AccountList = new Dictionary<int, DataUser>();
int i = 1;
string[] s = textBoxAccount.Text.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
List<Acc> items = new List<Acc>();
foreach (string line in s)
{
string[] mp = line.Split(':');
AccountList.Add(i, new DataUser { Email = mp[0], Password = mp[1] });
Array.Clear(mp, 0, 2);
i++;
}
foreach(var IdMail in AccountList)
{
items.Add(new Acc { ID = IdMail.Key, Mail = IdMail.Value.Email });
}
mainWindow.listBoxAccountList.ItemsSource = items;
}
}
Это код C# основного окна:
public partial class MainWindow : Window {
public MainWindow()
{
InitializeComponent();
}
private void AddNewAccount(object sender, RoutedEventArgs e)
{
NewAccount NewAccountWindow = new NewAccount();
NewAccountWindow.Show();
}
}
Не понимаю, что я сделал не так. 2 окна - это 2 разных xaml файла. Мне кажется, что {Binding ID} не видит класс, в который подаются данные. Это все должно выглядеть как-то так:
Также мне необходимо добавить кнопки справа, как на фотографии выше. При нажатие на кнопку должен открываться браузер(как открывать браузер я знаю. Проблема состоит только в кнопке), и туда должны филиться данные(email:pas) из строчки, откуда была нажата кнопка.



<ListBox ItemsSource="{Binding Accounts}">поизучайте, как можно сделать привязку данных с использованиемObservableCollection<T>и реализацииINotifyPropertyChanged. Примеров полно. Так же как минимум прочитайте, что такое MVVM, и зачем оно надо. – aepot Jan 05 '21 at 08:57