Вместо привязки к коллекции и использования конвертера вы можете предоставить свойство ItemNames только для чтения. В обработчике события Items.CollectionChanged вы вызываете событие PropertyChanged для свойства ItemNames
public class ViewModel
{
public ViewModel()
{
Items = new ObservableCollection<Item>();
Items.CollectionChanged += (o, e) => NotifyPropertyChanged("ItemNames");
}
public ObservableCollection<Item> Items { get; private set; }
public string ItemNames { get { return String.Join(",", Items); } }
}