Я полагаю, что.a файл является архивом, который может содержать несколько объектных файлов.
Не лучшая практика .. но работает нормально ...
<ComboBox GotFocus="Focused" x:Name="combobox1" HorizontalAlignment="Left" Margin="8,29,0,0" VerticalAlignment="Top" Width="128" Height="117"/>
Код за
public partial class MainWindow : Window
{
bool clearonce = true;
bool fillonce = true;
public MainWindow()
{
this.InitializeComponent();
combobox1.Items.Insert(0, " -- Select Team --");
combobox1.SelectedIndex = 0;
}
private void Focused(object sender, RoutedEventArgs e)
{
if(clearonce)
{
combobox1.Items.Clear();
clearonce = false;
}
if (fillonce)
{
//fill the combobox items here
for (int i = 0; i < 10; i++)
{
combobox1.Items.Insert(i, i);
}
fillonce = false;
}
}
}
Не пробовал с полями со списком, но у меня это сработало с другими элементами управления ...
Здесь он использует слой украшения для отображения водяного знака.
Я не знаю, поддерживается ли это напрямую, но вы можете наложить на комбо метку и сделать его скрытым, если выделение не равно нулю.
например.
<Grid>
<ComboBox Text="Test" Height="23" SelectionChanged="comboBox1_SelectionChanged" Name="comboBox1" VerticalAlignment="Top" ItemsSource="{Binding Source=ABCD}" />
<TextBlock IsHitTestVisible="False" Margin="10,5,0,0" Name="txtSelectTeam" Foreground="Gray" Text="Select Team ..."></TextBlock>
</Grid>
Затем в обработчик выбора изменен ...
private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
txtSelectTeam.Visibility = comboBox1.SelectedItem == null ? Visibility.Visible : Visibility.Hidden;
}
]Установите IsEditable="True" на элементе ComboBox. Это отобразит свойство Text в ComboBox.[
]. Вы можете сделать это без какого-либо кода, с использованием IValueConverter
.
<Grid>
<ComboBox
x:Name="comboBox1"
ItemsSource="{Binding MyItemSource}" />
<TextBlock
Visibility="{Binding SelectedItem, ElementName=comboBox1, Converter={StaticResource NullToVisibilityConverter}}"
IsHitTestVisible="False"
Text="... Select Team ..." />
</Grid>
Здесь у вас есть класс конвертера, который вы можете использовать повторно.
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
}
И, наконец, вам нужно объявить ваш конвертер в разделе ресурсов.
<Converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
Где Конвертеры - это место, где вы разместили класс конвертера. Пример:
xmlns:Converters="clr-namespace:MyProject.Resources.Converters"
Очень хорошая вещь в этом подходе - это отсутствие повторения кода в вашем коде.