Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > WPF: DataTemplate Имя "ИмяКласса" не существует в


Автор: Bounty7Coin 2.8.2016, 14:33
Здрасте. В общем только начал изучать WPF так что не пинайте. Решил сделать чатик по типу скайпа, вайбера. Расписал все на бумаге какие классы, функции буду использовать. Ну все думаю понеслась душа в рай. Написал <DataTemplate DataType="{x:Type models:MessageBase}"</DataTemplate> и присел на стул на 4 часа в поисках почему не видит мой класс.
Подскажите где я не правильно что то написал, или что то упустил

Мой XAML формы:

Код

<Window x:Class="MyViberChat.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:models="clr-namespace:MyViberChat"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <DataTemplate DataType="{x:Type models:MessageBase}">
            
        </DataTemplate>
    </Window.Resources>
</Window>


Классы которые мне нужны в DataTemplate:

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyViberChat
{
    public class MessageBase
    {
        public virtual string Text { get; protected set; }
        public MessageBase(string text)
        {
            Text = text;
        }
    }

    public class MyMessage : MessageBase
    {
        public MyMessage(string text) : base(text) { }
    }
    public class FriendMessage : MessageBase
    {
        public FriendMessage(string text) : base(text) { }
    }
}


Код формы:

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace MyViberChat
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public List<MessageBase> Messages { get; set; }

        public MainWindow()
        {
            InitializeComponent();
            Messages.Add(new MyMessage("Hello"));
            Messages.Add(new FriendMessage("Hi"));
            Messages.Add(new MyMessage("Are you busy"));
            Messages.Add(new FriendMessage("No"));
        }
    }
}

Автор: Bounty7Coin 2.8.2016, 16:54
Проблему решил, нужно было просто пересобрать проект, эх невнимательность)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)