这就是我想要的:
Nullable<Int32>
当前代码
<DataGridComboBoxColumn
Header="Application"
SelectedValueBinding="{Binding ApplicationKey}"
SelectedValuePath="ApplicationKey"
DisplayMemberPath="ApplicationName"
ItemsSource="{Binding Source={x:Static app:ApplicationLookup.GetAllOrNone}}"/>
目前绑定有效,但我无法从列表中选择“无”项目。组合框显示它,但当我尝试用鼠标选择时它没有做任何事情。
在绑定的组合框中提供none的标准方法是什么?
答案 0 :(得分:0)
我不知道这是否是标准的做事方式,但似乎有效:
有一个NullToken类定义如下:
Public Class NullToken 继承令牌
Private ReadOnly m_DisplayValue As String
Private Sub New(ByVal displayValue As String)
m_DisplayValue = displayValue
End Sub
Public Overrides Function ToString() As String
Return m_DisplayValue
End Function
Public Overrides ReadOnly Property PrimaryKey As Integer?
Get
Return Nothing
End Get
End Property
Public Shared ReadOnly BlankToken As New NullToken("")
Public Shared ReadOnly NoneToken As New NullToken("None")
Public Shared ReadOnly AllToken As New NullToken("All")
结束班
ApplicationLookup.GetAllOrNone
返回令牌集合,其中包含正确的NullToken作为第一项。
答案 1 :(得分:0)
当我为comboBox需要None或(Select All)类型的用户手势时,我所做的是为令牌创建一些静态值,并绑定到包含第一个位置的令牌的集合。然后在处理价值变化的任何事情中考虑它:
public string MidfixText {
get { return _midfixText; }
set {
...
_filter(!_midfixText.Equals(Strings.ProjectSelection_MidfixChoice_SelectAll));
}
}
HTH,
Berryl