Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Вопрос: Наследование в WPF / 8 сообщений из 8, страница 1 из 1
07.09.2008, 09:05
    #35526303
crusnik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
Потребовалось сделать в проекте кучу формочек почти с однотипным содержанием. По идее лучше всего подошло бы написать класс от него унаследовать все кучу форм. Но все мои попытки привели к тому, я получал одни ошибки.

Вопрос, как правильно сделать наследование.
Второй вопрос, где можно об этом толковое что-нибудь почитать. Или на какую ключевую фразу стоит погуглить?
...
Рейтинг: 0 / 0
07.09.2008, 12:09
    #35526370
TeXpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
crusnikНо все мои попытки привели к тому, я получал одни ошибки Вижу, ошибки довольно серьёзные. Исправляй их Второй вопрос, где можно об этом толковое что-нибудь почитать. Или на какую ключевую фразу стоит погуглить? Надо же. Гугель даже на не совсем удачную фразу поиска (цитирую тебя) как правильно сделать наследование уже что-то выдаёт
Вообще-то, загляни ещё сюда Не помешает спросить у Гугеля "Как правильно задавть вопросы"

А WPF, вообще-то ни при чём. Наследование -- фича языка
...
Рейтинг: 0 / 0
07.09.2008, 12:17
    #35526372
TeXpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
Надо же:)). Решил приколоться, насчёт спросить у Гугеля "Как правильно задавать вопросы" -- и тут (о чудо!), -- Гугель ответил мне, разразившись кучей ссылок . Обязательно посмотри первые три. Вывод: если разумно прикинуть, что и как спросить, то Гугель скажет всё, ну почти всё
...
Рейтинг: 0 / 0
07.09.2008, 14:47
    #35526459
crusnik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
TeXpert crusnikНо все мои попытки привели к тому, я получал одни ошибки Вижу, ошибки довольно серьёзные. Исправляй их Второй вопрос, где можно об этом толковое что-нибудь почитать. Или на какую ключевую фразу стоит погуглить? Надо же. Гугель даже на не совсем удачную фразу поиска (цитирую тебя) как правильно сделать наследование уже что-то выдаёт
Вообще-то, загляни ещё сюда Не помешает спросить у Гугеля "Как правильно задавть вопросы"

А WPF, вообще-то ни при чём. Наследование -- фича языка

1. Переформулирую вопрос передельно четко.
а) гугль выдает на мой вопрос информацию следующего характера, что WPF хорошо наследует стили, но при наследовании объектов проблемы возникали не только у меня.
2) С точик зрения логики и правил языка c# (WinForms) мне достаточно написать
Код: plaintext
public partial class ФормаПотомок :ФормаРодитель
3) Если я напишу, тоже самое в WPF, я тутже получаю ошибку на уровне ХАМЛа
4) Если я начинаю ковырять ХАМЛ,то форма родитель вроде бы подтягивается, но вместе с ней тянется партиал класс и между двумя классами (ФормаРодитель и ФормаПотомок) происходит конфликт.
...
Рейтинг: 0 / 0
07.09.2008, 14:54
    #35526463
TeXpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
crusnikПереформулирую вопрос передельно четко Слава Всевышнему! гугль выдает на мой вопрос информацию следующего характера, что WPF хорошо наследует стили, но при наследовании объектов проблемы возникали не только у меня Ссылка где? И что означает стили -- конкретнее? Если я напишу, тоже самое в WPF, я тутже получаю ошибку на уровне ХАМЛа Без доказательства всё это пример так называемой эмоции. Бесполезной. Ты плохо читал ту ссылку, про "Как правильно задавать вопросы" происходит конфликт За кусок сыра? Опять эмоции!
...
Рейтинг: 0 / 0
07.09.2008, 15:41
    #35526494
Осака Вестингауз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
Разметку может иметь только самый последний класс в иерархии. Все базовые должны быть без разметки.
...
Рейтинг: 0 / 0
07.09.2008, 18:34
    #35526564
crusnik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
Осака ВестингаузРазметку может иметь только самый последний класс в иерархии. Все базовые должны быть без разметки.

Оказалось ты прав на все сто процентов.

Ответ из МСДН-овского форума:

авторYour base control can't be defined in XAML. This is not supported in WPF. You must create your base class in pure code.

В связи с чем вопрос. Есть ли какие-нибудь инструменты по конверсии Хамл-разметки в код?
...
Рейтинг: 0 / 0
08.09.2008, 00:25
    #35526781
nexus72
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос: Наследование в WPF
2 автор: Попробуйте вот так (это правда не совсем то что вы хотите, но все же...):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
<UserControl 
  x:Class="UntitledProject1.BaseUserControl"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Height="300" Width="300"
  >
  
  <Grid>
    <WrapPanel>
      <Button x:Name="btnBase">test button</Button>
    </WrapPanel>
  </Grid>
</UserControl>

public partial class BaseUserControl : UserControl
{
    public BaseUserControl()
    {
        InitializeComponent();
    }
}

// ===========================================================

public partial class UserControl1 : BaseUserControl
{
    public UserControl1()
    {
        InitializeComponent();
        btnBase.Width = 100;
        btnBase.Height = 100;
    }
}

// ===========================================================

public partial class BaseUC : UserControl
{
    private ObservableCollection<string> _dataSource = new ObservableCollection<string>();

    public ObservableCollection<string> DataSource
    {
        get { return _dataSource; }
        set { _dataSource = value; }
    }
}

// ===========================================================

<local:BaseUC
  x:Class="UntitledProject1.UserControl2"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:UntitledProject1"
  Height="300" Width="300"
>
  
  <Grid Background="Yellow">
    <ItemsControl x:Name="testData" />
  </Grid>
</local:BaseUC>

public partial class UserControl2 : BaseUC
{
    public UserControl2()
    {
        InitializeComponent();
        this.DataSource.Add("aaa");
        this.DataSource.Add("bbb");
        testData.ItemsSource = this.DataSource;
    }
}

// ===========================================================

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="UntitledProject1.Window1"
  x:Name="Window"
  Title="Window1"
  Width="640" Height="480"
  >

  <Grid x:Name="LayoutRoot" Background="#FF000000">
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <WrapPanel>
      <Button Width="100" VerticalAlignment="Top" Content="Button" Click="Button_Click_1" />
      <Button Width="100" VerticalAlignment="Bottom" Content="Button" Click="Button_Click" />
    </WrapPanel>
    
    <WrapPanel x:Name="panel" Grid.Row="1">      
    </WrapPanel>
  </Grid>
</Window>

public partial class Window1
{
    public Window1()
    {
        this.InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        UserControl uc = new UserControl2();
        panel.Children.Add(uc);
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        UserControl uc = new UserControl1();
        panel.Children.Add(uc);
    }
}
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Вопрос: Наследование в WPF / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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