powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Вопрос: Наследование в WPF
8 сообщений из 8, страница 1 из 1
Вопрос: Наследование в WPF
    #35526303
crusnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потребовалось сделать в проекте кучу формочек почти с однотипным содержанием. По идее лучше всего подошло бы написать класс от него унаследовать все кучу форм. Но все мои попытки привели к тому, я получал одни ошибки.

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

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

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

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

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

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

автор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
Вопрос: Наследование в WPF
    #35526781
nexus72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
8 сообщений из 8, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Вопрос: Наследование в WPF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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