Вы должны поместить текстовый блок поверх списка и связать его видимость с коллекцией, используя конвертер, который преобразует ноль в Visibility.Collapsed.
<Grid>
<ListBox ItemsSource="{Binding TheItems}" />
<TextBlock Text="No Items Found"
Visibility="{Binding TheItems, Converter={StaticResource TheConverter}}" />
</Grid>
и конвертер:
public class NullToInvisibleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value==null ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}