我有兩個UserControls
:文本框結合工作不
1)ContactDetailsView
。
2)SearchBarView
。
在SearchBarView
,我有一個Search
按鈕,點擊時這引起了一個命令:Command="{Binding SearchCommand}"
在SearchBarView
碼後面,我有以下代碼:DataContext = new SearchBarViewModel();
在ContactDetailsView
我有以下代碼:
xmlns:ViewModel="clr-namespace:Accounts_Manager.UserControls.SearchBar"
在UserControl
的定義和這個代碼在它下面:
<UserControl.DataContext> <ViewModel:SearchBarViewModel /> </UserControl.DataContext>
我也有如下定義一個TextBox
:
<TextBox x:Name="ContactNameTextBox" FontFamily="Times New Roman" Foreground="DarkRed" HorizontalAlignment="Stretch" HorizontalContentAlignment="Center" IsEnabled="False" Grid.Column="0" Text="{Binding ContactId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
我有一個名爲SearchBarViewModel
用下面的代碼類:
public string ContactId
{
get { return m_contactId; }
set
{
m_contactId = value;
OnPropertyChanged("ContactId");
}
}
public ICommand SearchCommand
{
get { return m_searchCommand ?? (m_searchCommand = new RelayCommand(SearchContact)); }
set { m_searchCommand = value; }
}
public void SearchContact(object parameter)
{
CurrentContact = DbHandler.Search("עידן");
ContactId = CurrentContact.FirstName + " " + CurrentContact.LastName;
BankId = CurrentContact.BankName;
AccountNumber = CurrentContact.AccountNumber.ToString();
}
類的定義如下; 其中ViewModelBase
從INotifyPropertyChanged
繼承並實現它。
RelayCommand
繼承自ICommand
並實現它。
而現在,這一切後,我的問題是,當我點擊Search
按鈕,期待TextBox
進行更新,我看到的一切都被調用和更新中,該酒店被提出,但TextBox
不更新爲ContactId
的值。
任何想法?
這個問題很好*,很好,包括所有相關的信息! – BradleyDotNET
非常感謝!我也看了你的答案,並明確瞭解問題所在。謝謝! – Idanis