我已将ComboBox
绑定到DateTime
值列表,以选择事件的开始时间。我使用ItemTemplate
指定列表中DateTime
的格式。我还希望用户能够在列表中手动指定不的开始时间,例如8:27 AM
或9:30 PM
。
布线不是问题;相反,我希望向用户显示与列表相同的格式DateTime
。
<ComboBox x:Name="StartTimeButton"
ItemsSource="{Binding DataContext.StartTimes,
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
SelectedItem="{Binding DefaultStartTime}"
IsEditable="True">
<ComboBox.ItemTemplate>
<DataTemplate>
<Label>
<TextBlock Text="{Binding StringFormat='{}{0:hh:mm tt}'}" />
</Label>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我无法确定如何格式化TextBlock
使用的顶部ComboBox
(启用编辑时)以匹配下拉区域的格式。
答案 0 :(得分:0)
让你半途而废的超速牌(你可以放弃ellipse_one = [Ellipse(xy= (0,0), width=a_ellipse_one, height=b_ellipse_one, angle = rotation_ellipse_one)
plt.gca().add_patch(ellipse_one)
ax.add_patch(ellipse_one)
plt.axis('scaled')
plt.show()
):
DataTemplate
问题是,<ComboBox ItemsSource="{Binding Times}"
IsEditable="True" ItemStringFormat="hh:mm tt"
TextSearch.TextPath="Hour"/>
没有以该格式输出时间的属性。就个人而言,我会编写一个包含内部DateTime
的包装器和一个有助于格式化字符串并从中解析的属性。
似乎没有从输入文本创建新项目的标准方法,因此如果输入的值不在列表中,您可能需要手动解析DateTime
。