我在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;
}
}
Property 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
作业没有发生, 我想将指定的证书显示为组合框中的默认选择值,这不会发生
答案 0 :(得分:0)
您只能将所选项目设置为ItemsSource中的对象,是这种情况吗?
此致 多米尼克
答案 1 :(得分:0)
我很困惑......
您为组合的所选项目创建了属性Certificate
,但您为其分配了SelectedItem
属性:
this.CertificateComboBox.SelectedItem = _certificate;
可能_certicate
为空。
我认为你只需要做
Certificate = some value
其中某些值是属于您的商品来源的有效CertificateEntry
。