Как ссылаться на текущий контроль в сетке? - PullRequest
1 голос
/ 17 октября 2010

Я хочу создать свой собственный элемент управления:

public class DataGrid : System.Windows.Controls.DataGrid

В определении стиля я хочу добавить кнопку над сеткой, поэтому я написал:

 <Style TargetType="local:DataGrid">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:DataGrid">
                 <Grid>
                    <Button Content="Addnew"></Button>
                    <?????>
                  </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
</Style>

Но какМогу ли я сказать XAML поставить сетку в позиции ??????

Спасибо всем !!

1 Ответ

0 голосов
/ 17 октября 2010

Вы уверены, что хотите использовать наследование здесь? Следует рассмотреть возможность создания другого элемента управления, который содержит DataGrid, а не наследовать от DataGrid и использовать шаблон по умолчанию.

Если вы решите, что вам нужно настроить шаблон DataGrid, вам нужно будет воссоздать весь шаблон DataGrid. Вы можете найти оригинальный шаблон DataGrid, открыв сборку DataGrid в .net рефлектор или аналогичное приложение и открыв встроенный ресурс "generic.xaml". Этот файл будет содержать ResourceDictionary, определяющий все стили по умолчанию для элементов управления, определенных в сборке. Вы можете скопировать шаблон по умолчанию отсюда и изменить его при необходимости.

В качестве альтернативы, если у вас есть Expression Blend, вы можете сделать это автоматически, щелкнув правой кнопкой мыши элемент управления DataGrid и выбрав «редактировать копию этого шаблона» (или что-то подобное, я не могу вспомнить точную формулировку из верх моей головы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...