powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataTemplate for ListView.ItemsTemplate
11 сообщений из 11, страница 1 из 1
DataTemplate for ListView.ItemsTemplate
    #39518095
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!
есть ListView.ItemSource = System.Data.DataTable.DefaultView

пытаюсь создать DataTemlate для ListVuew.ItemsTemplate
с чекбоксом и значением из определённой колонки:
Код: xml
1.
2.
3.
4.
5.
6.
    <DataTemplate x:Key="lvItemTemlate">
        <StackPanel Orientation="Horizontal">
            <CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}" />
            <TextBlock Text="{Binding  [Col2]}" Margin="5,0,0,0"/>
        </StackPanel>
    </DataTemplate>



как динамически менять привязку к колонке [Col2] (TextBlock Text="{Binding [Col2]}")?
т.е. там может быть или [Col1], или [Col3] или ... или [ColN]

СПАСИБО!
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518229
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WitC, менять значение самой Col2
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518259
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vb_sub,

как вариант, сделал так
в XAML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
    <!--ListView ItemTemplate-->
    <DataTemplate x:Key="lvItemCheckBoxTemlate">
        <StackPanel Orientation="Horizontal">
            <CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}" />
            <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=Content}" Margin="5,0,0,0"/>
        </StackPanel>
    </DataTemplate>
    <!--ListWiew ItemTemplate-->



и в коде
Код: c#
1.
2.
ListView lv = new ListView() { SelectionMode = SelectionMode.Multiple, ItemTemplate = dg.FindResource("lvItemCheckBoxTemlate") as DataTemplate };
lv.ItemsSource = dg.ItemsSource.OfType<System.Data.DataRowView>().Select(x => x[Column.Header.ToString()]);



но, как-то не верится, что нельзя динамически привязаться к полю в XAML, возможно через конвертёр как-то...
вариант работает, спасибо.
может у кого есть более изящный способ, буду благодарен...
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518281
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объясните русским языком, что конкретно нужно
Если надо ListView c CheckBox'ом слева, то это делает просто и без гемороя
не очень понятно, что должно быть в результате ваших манипуляций
+
CheckBox унаследовано от ContentControl, нет ни какого смысла размещать CheckBox и рядос с ним TextBlock, достаточно свойству CheckBox.Content задать значение которое вы задаете для TextBlock, оно будет отображатьс в том же TextBlock, но уже внутри CheckBox'а и следовательно будет его частью и при фокусировании разница будет заметна.
либо в фокусе будет только глиф чекбокса, либо глиф + содержимое.

напишите точно, что хотите, скину пример.
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518307
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,

вопрос больше в привязке.
ListView.ItemSource = System.Data.DataTable.DefaultView
если при таком раскладе задать
ListView.DisplayMemberPath = "col2"
то свойство
ListView.ItemTemplate задать не возможно:
System.InvalidOperationException: 'Cannot set both DisplayMemberPath and ItemTemplate.'
пока выкрутился через лямбду.

на счет ТекстБлока:
если текст в поле System.Data.DataTable.DefaultView будет слишком длинный, хочу чтобы он обрезался и в конце появлялось троеточее... (TextDecorations)

что требуется.
Есть ДатаГрид. необходимо на каждое ДатаГридКолумнХёадер навешать автофильтр. за пример взял автофильтр Эксель.
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518308
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что есть:
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518309
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что требуется:
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518347
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже столько раз делал это д...мо, что еще раз не хочется :)
это довольно объемная задача, так, что за просто так я её делать не буду :)
У GridViewColumnHeader'а, есть свойство DisplayMemberPath и CellTemplate, в отображаемом списке можно просто использовать либо Binding, либо точно такой же шаблон. Можно шаблон разместить в шаблоне, как вариант, либо переопределить шаблон элемента списка фильтра и добавить туда чекбокс.
в основном делал такое для DataGrid. Для GridView даже не пробовал, не думаю, что сильно сложнее.
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518348
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще в процессе отображения значений стоит либо фильтровать, либо затемнять уже отфильтрованные
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518354
WitC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,

Roman MejtesУ GridViewColumnHeader'а, есть свойство DisplayMemberPath и CellTemplate


да, я уже копал в эту сторону, но не понравились заголовки колонок при отображении ListView.
может ещё раз пересмотрю.

спасибо.
...
Рейтинг: 0 / 0
DataTemplate for ListView.ItemsTemplate
    #39518381
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WitC,

покопался впроектах, есть вот такой пример:
это DataGrid
Он инициализируется через XML'ки.
Одна XML инициализирует внешний вид контрола, условное форматирование ячеек, возможность задать практически все возможные параметры, включить сортировку, фильтрацию, перетаскивание столбцов, короче настроить можно как угодно и что угодно.
Данные в грид так же передаются через XML И можно их обновлять частично через те же XML
Выглядит вот так:
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataTemplate for ListView.ItemsTemplate
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]