Пользовательский пользовательский контроль WPF в ячейке таблицы данных. Как этот дочерний элемент управления получает объект строки или идентификатор события? - PullRequest
0 голосов
/ 20 октября 2011

Итак, у меня есть пользовательский элемент управления:

<Grid>
    <StackPanel HorizontalAlignment="Center" Orientation="Vertical">
        <CheckBox x:Name="chkboxListen" HorizontalAlignment="Center" Checked="chkboxListen_Checked" Unchecked="chkboxListen_Unchecked"/>
        <MediaElement x:Name="mediaElementAudioPlayer" Volume="{Binding ElementName=sliderVol, Path=Value}" />
        </StackPanel>
</Grid>

И он будет находиться в столбце шаблона DataGrid:

            <DataGridTemplateColumn x:Name="callListenL"  Header="Listen(L)" IsReadOnly="False">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <localControls:AudioPlay x:Name="audioPlayL" localControls:AudioPlay>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

Мой вопрос:

Когда я проверяю chkboxListen CheckBox, как я могу получить информацию из строки DataGrid (Parent)? В каждой строке есть myObject с идентификатором. Мне просто нужен этот идентификатор.

Заранее спасибо.

1 Ответ

0 голосов
/ 20 октября 2011

Вы можете предоставить свойство из своего пользовательского элемента управления и установить значение этого свойства при привязке данных сетки данных.

Например, допустим, что свойство вашего пользовательского элемента управления называется ParentRowId, его можно установить в кодеили используйте выражение Eval

 <DataGridTemplateColumn x:Name="callListenL"  Header="Listen(L)" IsReadOnly="False">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <localControls:AudioPlay x:Name="audioPlayL" ParentRowId='<%# Cint(Eval("Id")) %>' localControls:AudioPlay>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...