Я пытаюсь сделать комбобокс, который выберет объект MyClass и покажет свойство Domain
. Итак:
<xctk:WatermarkComboBox
Grid.Row="2" Grid.Column="1"
x:Name="cmbAuths"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Margin="5 0 0 0 "
ItemsSource="{Binding DomainCollection,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Domain"
SelectedValuePath="Domain"
SelectedItem="{Binding CurrentAuthConnectionWrapper,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
SelectionChanged="CmdAuths_SelectionChanged"
IsSynchronizedWithCurrentItem="True"
>
</xctk:WatermarkComboBox>
LoginDialogBoxViewModel.cs:
public LoginDialogBoxViewModel()
{
DomainCollection = GetDomainCollection().Result; // ObservableCollection<AuthDomainStringWrapper>
CurrentAuthConnectionWrapper = DomainCollection.FirstOrDefault();
DoPropertyChanged(nameof(DomainCollection));
DoPropertyChanged(nameof(CurrentAuthConnectionWrapper));
}
private AuthDomainStringWrapper _authDomainStringWrapper;
public AuthDomainStringWrapper CurrentAuthConnectionWrapper
{
get
{
return _authDomainStringWrapper;
}
set
{
_authDomainStringWrapper = value;
DoPropertyChanged(nameof(CurrentAuthConnectionWrapper));
}
}
#region DoPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected void DoPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
Класс модели:
public class AuthDomainStringWrapper : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _domain;
private string _authConnectionString;
public AuthDomainStringWrapper(string domainName,string authConnectionString)
{
Domain = domainName;
AuthConnectionString = authConnectionString;
DoPropertyChanged(nameof(Domain));
DoPropertyChanged(nameof(AuthConnectionString));
}
public string Domain
{
get
{
return _domain;
}
set
{
_domain = value;
DoPropertyChanged(nameof(Domain));
}
}
public string AuthConnectionString
{
get
{
return _authConnectionString;
}
set
{
_authConnectionString = value;
DoPropertyChanged(AuthConnectionString);
}
}
protected void DoPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Итак, результат:
! 1 [Image]
Пожалуйста, помогите мне!