Использование wpf ListBox
Я пытаюсь отобразить список имен файлов, не отображая полный путь (более удобный для пользователя).Путь к файлу имен Редактор строк не работает
Данные взяты из ObservableCollection
, которые заполняются с помощью диалогового окна.
private ObservableCollection<string> _VidFileDisplay = new ObservableCollection<string>(new[] {""});
public ObservableCollection<string> VidFileDisplay
{
get { return _VidFileDisplay; }
set { _VidFileDisplay = value; }
}
В конце концов, я хочу выбрать некоторые элементы и вернуть полный путь к файлу. Для этого у меня есть конвертер:
public class PathToFilenameConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
//return Path.GetFileName(value.ToString());
string result = null;
if (value != null)
{
var path = value.ToString();
if (string.IsNullOrWhiteSpace(path) == false)
result = Path.GetFileName(path);
}
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
Что я связываю с моей ListBox ItemSource:
<ListBox x:Name="VideoFileList" Margin="0" Grid.Row="1" Grid.RowSpan="5" Template="{DynamicResource BaseListBoxControlStyle}" ItemContainerStyle="{DynamicResource BaseListBoxItemStyle}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemsSource="{Binding Path=DataContext.VidFileDisplay, Converter={StaticResource PathToFileName},ElementName=Ch_Parameters, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Path=SelectedVidNames,ElementName=Ch_Parameters, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
без преобразователя, он работает нормально (но, конечно, это полный путь отображается в окне списка). С преобразователем у меня есть один символ в строке ..., отображающий это:
System.Collections.ObjectModel.ObservableCollection`1[System.String]
Где я ошибаюсь?
Спасибо
Именно так. спасибо – lecloneur