Wpf - Combobox, связывающийся с датой ArrayList - PullRequest
1 голос
/ 18 января 2010

У меня есть статический 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>

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

<ComboBox x:Name="cmbFinish" 
          ItemsSource="{Binding Source={StaticResource startHours}}" 
          ItemStringFormat="t"/>

Элементы отформатированы нормально - hour:minute, но когда я выбираю элемент, cmbFinish.Value имеет формат DateTime.ToString() по умолчанию. Что мне не хватает? Мне нужно, чтобы cmbFinish.Value был в формате hour:minute.

Ответы [ 2 ]

1 голос
/ 18 января 2010

Я не вижу Value свойство в классе ComboBox. Вы думали о свойстве SelectedValue? В этом случае приведите его значение к DateTime (DateTime)cmbFinish.SelectedValue, который затем можно преобразовать в нужный формат строки.

0 голосов
/ 18 января 2010

Извините ... Мой список содержит свойство IsEditable (я забыл добавить его в вопрос), установленное в True. Согласно social msdn в этом случае .SelectedValue подберет исходное значение, даже если к нему применен преобразователь.

Если для свойства IsEditable установлено значение False, нет разницы в формате элементов и. SelectedValue формате. Прямо сейчас я думаю, что лучший способ - привязать к преобразованному в строки ArrayList.

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