Установите имя по умолчанию для комбинированного списка в WPF - PullRequest
2 голосов
/ 26 августа 2011

У меня есть поле со списком, представляющее целые годы.Годы, которые я добавлял в ObservableCollection, но моя проблема в том, что когда я загружаю проект, поле со списком по умолчанию остается пустым.Я хочу установить для него имя по умолчанию, например «Years», но я не хочу, чтобы решение, например, устанавливало isEditable в true или вставляло строку в начале.Я хочу чистого решения xaml, если это возможно.

Это мой текущий xaml-файл:

<RSControls:SmoothScrollComboBox Grid.Column="1" x:Name="compilationYearCombo" Margin="7,2.04,0,2.04"                                                                                     
                            SelectedValue="{Binding Path=SelectedYear}"
                            SelectedValuePath=""
                            ItemsSource="{Binding Years}"
                            DisplayMemberPath="" SelectionChanged="compilationYearCombo_SelectionChanged" IsSynchronizedWithCurrentItem="True" Grid.ColumnSpan="2" IsEditable="False" SelectedIndex="0" IsReadOnly="False" Text="Years">

                        </RSControls:SmoothScrollComboBox>

Я пытался добавить <TextBlock Text="Years" />, но это только изменило все элементы в комбо на «Годы».

Я прошу подробное объяснение, как это сделать, я только начинающий с WPF.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Вы можете добавить конвертер видимости в ваш TextBlock

   <TextBlock
           Visibility="{Binding SelectedItem, ElementName=compilationYearCombo, Converter={StaticResource NullToVisibilityConverter}}"
           IsHitTestVisible="False"
           Text="Years" />

с этим конвертером:

    public class NullToVisibilityConverter : IValueConverter
{
    #region Implementation of IValueConverter

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value == null ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}
0 голосов
/ 06 июня 2012

Для отображения текста по умолчанию '- Выберите значение -' в поле со списком

<ComboBox Height="23" HorizontalAlignment="Left" Margin="180,18,0,0" Name="cmbExportData" VerticalAlignment="Top" Width="148" ItemsSource="{Binding}" Text="-- Select Value --" AllowDrop="False" IsEditable="True" IsManipulationEnabled="False" IsReadOnly="True" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...