C# Wpf-绑定到DateTime ArrayList的组合框
我有一个静态C# Wpf-绑定到DateTime ArrayList的组合框,c#,.net,wpf,data-binding,combobox,C#,.net,Wpf,Data Binding,Combobox,我有一个静态ArrayList的DateTimes <Window.Resources> <col:ArrayList x:Key="startHours"> <sys:DateTime>0:00</sys:DateTime> <sys:DateTime>0:30</sys:DateTime> <!-- .... --> </col:Array
ArrayList
的DateTimes
<Window.Resources>
<col:ArrayList x:Key="startHours">
<sys:DateTime>0:00</sys:DateTime>
<sys:DateTime>0:30</sys:DateTime>
<!-- .... -->
</col:ArrayList>
</Window.Resources>
项目的格式为ok-
hour:minute
,但当我选择一个项目时,cmbFinish.Value
具有默认的DateTime.ToString()
格式。我错过了什么?我需要cmbFinish.Value
采用hour:minute
格式 我在ComboBox类中没有看到值
属性。您是否在考虑SelectedValue属性?
在本例中,将其值强制转换为DateTime
(DateTime)CMBFish。SelectedValue
,然后可以将其转换为所需的字符串格式。我在ComboBox类中没有看到值
属性。您是否在考虑SelectedValue属性?
在本例中,将其值强制转换为DateTime
(DateTime)CMBFish。选择的值可以转换为所需的字符串格式。对不起。。。我的组合框有一个IsEditable
(我忘了将其添加到问题中)属性设置为True
。根据本例中的。SelectedValue
将拾取源值,即使应用了转换器
如果IsEditable
属性设置为False
,则项目格式和.code>SelectedValue
格式没有差异。现在我认为最好的方法是绑定到转换为字符串的ArrayList 对不起。。。我的组合框有一个IsEditable
(我忘了将其添加到问题中)属性设置为True
。根据本例中的。SelectedValue
将拾取源值,即使应用了转换器
如果
IsEditable
属性设置为False
,则项目格式和.code>SelectedValue格式没有差异。现在我认为最好的方法是绑定到转换为字符串的ArrayList 谢谢你的回答,你是对的,我是说cmvFinish.SelectedValue。很抱歉,如果我没有说清楚,我不明白您所说的(DateTime)CMBFish.SelectedValue并将其转换。如果您的组合框是可编辑的,SelectedValue属性可能包含DateTime或null。在将SelectedValue转换为DateTime之前,必须先检查它。在这两种情况下,您都可以阅读ComboBox.Text值来阅读键入的文本。谢谢您的回答,您是对的,我是说cmvFinish.SelectedValue。很抱歉,如果我没有说清楚,我不明白您所说的(DateTime)CMBFish.SelectedValue并将其转换。如果您的组合框是可编辑的,SelectedValue属性可能包含DateTime或null。在将SelectedValue转换为DateTime之前,必须先检查它。在这两种情况下,您都可以读取ComboBox.Text值来读取键入的文本。
<ComboBox x:Name="cmbFinish"
ItemsSource="{Binding Source={StaticResource startHours}}"
ItemStringFormat="t"/>