Выбранное значение в поле не показывает имя свойства, но имя класса - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь сделать комбобокс, который выберет объект 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]

Пожалуйста, помогите мне!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...