powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding SelectedIteems (DataGrid)
2 сообщений из 2, страница 1 из 1
Binding SelectedIteems (DataGrid)
    #38309996
Stratus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, подскажите плиз

Задача очень простая но решить не могу....

Есть 2 грида, при выборе в первом гриде строк, эти строки должны отображаться во втором гриде.
В таком виде задача решается просто, однако мне нужно чтобы во вором гриде отображались только определенные столбцы.
Иными словами нужно сделать биндинг не всех столбцов первого грида а только нужых.
Как это сделать?

class DataObject
{
string _FirstField;
string _SecondField;

public DataObject(string firstField, string secondField)
{
_FirstField = firstField;
_SecondField = secondField;
}

public string FirstField
{ get { return _FirstField; } set { _FirstField = value; } }

public string SecondField
{ get { return _SecondField; } set { _SecondField = value; } }
}

class Collection : ObservableCollection<DataObject> {}

public MainWindow()
{
InitializeComponent();
//Добавляем значения в коллецию уже созданную в XAML
NS.Collection coll = (NS.Collection)this.FindResource("DataCollection");

coll.Add(new NS.DataObject("value1", "value2"));
coll.Add(new NS.DataObject("value3", "value4"));
}

<Window
xmlns=" http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x=" http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit=" http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:data="clr-namespace:clrnamespace.NS"
x:Class="clrnamespace.MainWindow"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<data:Collection x:Key="DataCollection"/>
<CollectionViewSource x:Key="cvs" Source="{StaticResource ResourceKey=DataCollection}" />
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="268*"/>
<ColumnDefinition Width="249*"/>
</Grid.ColumnDefinitions>
<toolkit:DataGrid x:Name="dataGrid" Margin="10,10,8,10" ItemsSource="{Binding Mode=OneWay, Source={StaticResource cvs}}" AutoGenerateColumns="False">
<toolkit:DataGrid.Columns>
<toolkit:DataGridTextColumn Binding="{Binding FirstField}" Header="Поле 1"/>
<toolkit:DataGridTextColumn Binding="{Binding SecondField}" Header="Поле 2"/>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
<toolkit:DataGrid Margin="11,10,10,10" Grid.Column="1" ItemsSource="{Binding SelectedItems, ElementName=dataGrid}"/>
</Grid>
</Window>
...
Рейтинг: 0 / 0
Binding SelectedIteems (DataGrid)
    #38310192
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stratus,

Самое простое решение - делать биндинг на коллекцию колумнов во втором гриде на колумны первого грида. Цеплять конвертор и в нем делать фильтрацию - Where (Linq) на нужные тебе столбцы.
Но я бы либо расширил текущий грид, либо сделал бы аттачпроперти от нового класса - мне кажется так элегантнее было бы. Но первый вариант очень простой и быстрый
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding SelectedIteems (DataGrid)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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