У меня есть два вида: один, в котором у меня есть список счетов, а второй, который имеет форму для добавления/редактирования счетов.WPF - ComboBox SelectedItem не является обязательным
BillView содержит некоторые текстовые поля и поле со списком. Проблема в том, что если я попытаюсь отредактировать счет, когда BillView откроет текстовые поля, вы перемещаете значения, введенные мной при добавлении счета, за исключением поля со списком, которое не показывает значение, которое я выбрал при добавлении счета (но привязка списка в порядке). Используется точка останова в наборе BillAccount, и кажется, что она работает, но выбранный comboxbox не установлен.
BillView (используется для добавления/редактирования счета):
<Label Grid.Row="5" HorizontalAlignment="Left" Content="Account" />
<ComboBox Grid.Row="5" ItemsSource="{Binding Accounts}" DisplayMemberPath="TheAccount.AccountName" HorizontalAlignment="Right"
SelectedItem="{Binding BillAccount}"/>
Это конструктор BillViewModel:
public BillViewModel(BillModel bill)
{
BillId = bill.TheBill.BillId;
AccountId = bill.TheBill.AccountId;
BillAmmount = (double)bill.TheBill.Ammount;
NextDate = bill.TheBill.NextDate;
this.accounts = GetAccounts(); // populates the list
billAccount = accounts.Where(i => i.TheAccount.AccountId == this.AccountId).First();
}
public AccountModel BillAccount
{
get { return billAccount; }
set { billAccount = value;
OnPropertyChanged("BillAccount");
}
}
В GetAccounts() Метод:
private ObservableCollection<AccountModel> GetAccounts()
{
if (accounts == null)
accounts = new ObservableCollection<AccountModel>();
accounts.Clear();
using(var context = new Ents())
{
foreach(var account in context.Accounts)
{
accounts.Add(new AccountModel() { TheAccount = account });
}
}
return accounts;
}
Метод должен быть точным.
Вы можете посмотреть на выходном окне, чтобы увидеть, если есть какие-либо вопросы, связывающие сообщенные? –
Чтобы быть уверенным: 'Учетные записи' - это proprerty, который просто раскрывает поле' accounts'? – krimog
Также вы используете DisplayMemberPath ... у вашего объекта AccountModel есть свойство «TheAccount»? И имеет ли этот объект свойство AccountName? –