WPF Combobox присваивает selectedItem - PullRequest
0 голосов
/ 30 июня 2011

У меня есть проблема, связанная с выпадающим списком в WPF

Мой код xaml для поля со списком

<ComboBox Name="CertificateComboBox"  Grid.Row="2" Grid.Column="2" VerticalAlignment="Center"  Margin="1,59,0,48" IsEnabled="{Binding SecurityEnabled}"
                            ItemsSource="{Binding CertificatesList}" DisplayMemberPath="CertName" SelectedItem="{Binding Certificate, Mode=TwoWay}" ToolTip="List of SSL certificates. Select a value from the combobox.">
</ComboBox>

CertificatesList - список объектов CertificateEntry

public class CertificateEntry
{
    public string CertName { get; set; }
    public string CertHash { get; set; }
    public X509Certificate2 certificte {get; set; }
    public CertificateEntry( X509Certificate2 cert)
    {
        certificte = cert;
        if (cert.FriendlyName.Equals(""))
        {
            CertName = cert.Issuer;
        }
        else
        {
            CertName = cert.FriendlyName;
        }
        CertHash = cert.Thumbprint;
    }
    public string ToString()
    {
        return CertName;
    }
}

Свойство SelectedItem Свойство

public CertificateEntry Certificate
    {
        get
        {                
            return _certificate;
        }

        set
        {
            if (_certificate == value) 
                return;

            _certificate = value;
            OnPropertyChanged("Certificate");
        }
    }

Моя проблема возникает, когда я пытаюсь назначить объект для CertificateComboBox.SelectedItem

this.CertificateComboBox.SelectedItem = _certificate;

, где _certificate - это CertificateEntry Объект
Это не принимает значение

В добавленных часах после вышеуказанного вызова `null

this.CertificateComboBox.SelectedItem = null

назначение не происходит, Я хочу показать назначенный сертификат в качестве выбранного по умолчанию значения в выпадающем списке, чего не происходит

Ответы [ 2 ]

0 голосов
/ 30 июня 2011

Я в замешательстве ...

Вы создали свойство Certificate для выбранного элемента комбо, но вы присваиваете его свойство SelectedItem следующим образом:

this.CertificateComboBox.SelectedItem = _certificate;

где, вероятно, _certicate равно нулю.

Я думаю, тебе просто нужно сделать

Certificate = some value

где какое-то значение является действительным CertificateEntry, принадлежащим вашему источнику предметов.

0 голосов
/ 30 июня 2011

Вы можете установить только выбранный Предмет для объекта, который находится в вашем ItemsSource, это так?

С уважением Доминик

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