TheBigBearNow Ответов: 2

Вопрос о привязке управляющих данных C# WPF .xaml.


Всем привет,
У меня есть вопрос. У меня есть пользовательский объект со свойствами. У меня есть экран входа в систему, и когда пользователь правильно входит в систему, я передаю объект пользователя в следующее окно. В верхней части этого следующего окна я хотел бы отобразить это ниже с новой строкой в элементе управления. Должен ли я использовать текстовый блок или, может быть, 2 метки?
Я могу заставить это работать без проблем, используя пользователя.Имя пользователя в элементе управления, но мне было интересно, должен ли я делать это с привязкой данных, потому что я использую окно WPF C#. Спасибо.
‘Привет:
имя пользователя’

//Login window which passes the user object to the next window
try{
                    loginUser = SQLuserAccess.UserLogin(txtUsername.Text, txtPassword.Password.ToString());
                    if (txtUsername.Text == loginUser.Username && txtPassword.Password == loginUser.Password) {
                        if (loginUser.IsAdmin == true) {
                            Window showAdminSrc = new AdminWindow(loginUser);
                            showAdminSrc.Show();
                            Close();
                        }  else if (loginUser.IsAdmin == false){
                            Window nonAdmin = new CustomerScreen(loginUser);
                            nonAdmin.Show();
                            Close();
                        } else
                            lblInvalidText.Content = "Admin is not True or False!";
                    }
//Adminwindow screen which takes object
        public AdminWindow(User user) {
            adminUser = user;
            InitializeComponent();
            //Display specific username on window.
            TextBlockName.Text = "Hello:" + Environment.NewLine +user.Username;
        }
//The control in .xaml        <TextBlock x:Name="TextBlockName" TextWrapping="Wrap" HorizontalAlignment="Right" Margin="0,30,35,0" FontSize="16">Hello:<!--<LineBreak /><Run Text="{Binding Username}"/>--></TextBlock>
//AND HERE IS SOMETHING I WAS TRYING DATA BINDING BUT HAVE NOT FIGURED OUT      		  <!--   LEARN DATA BINDING TEXTBLOCK TO DISPLAY USER OBJECT NAME.
        <TextBlock x:Name="TextBlockUsername" Text="{Binding Username}" HorizontalAlignment="Right" FontSize="16" Margin="0,60,35,0"/>
-->


Что я уже пробовал:

У меня он работает, передавая объект и используя object.property, но должен ли я делать это с привязкой данных, потому что это WPF.

2 Ответов

Рейтинг:
6

M.Kamran Asim

1. Выбор между меткой и текстовым блоком зависит от требований. Если ваши данные-это только текст, выберите TextBlock. Поскольку он легкий, но если вам нужен какой-то контент, такой как изображение, сетка или другой сложный типизированный текст, то label отлично подходит для вас. Лично для простых сообщений я использую textblock с некоторым стилем, если это необходимо.

2. привязка данных-лучший выбор, WPF не завершен без MVVM. Если вы не используете MVVM, то можно переместить вашу логику в viewModel. Во-вторых, вам не нужно беспокоиться о get/set. WPF databind делает это лучше для вас. С помощью привязки данных вы можете привязать свои страницы к различным моделям представления, скажем, одна модель представления для времени разработки, а другая для реальной реализации


Рейтинг:
2

#realJSOP

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

Да.