0
TextBlock
のVisibility
を、自分が選択したユーザー名が使用可能かどうかに基づいてバインドしようとしています。テキストボックスへのTextBlockの可視性のバインド
<TextBlock Grid.Row="5" Text="* Username already taken" Visibility="{Binding UsernameAvailable, Converter={StaticResource BoolToVis}}" Margin="5"/>
プロパティそれがバインドし、解雇されたコマンドがあるさ:
public bool UsernameAvailable { get; set; }
#region RegisterCommand
private DelegateCommand _registerCommand;
public ICommand RegisterCommand
{
get
{
_registerCommand = new DelegateCommand(param => Register());
return _registerCommand;
}
}
private void Register()
{
if (IsPasswordValid())
{
var newUser = new User
{
FirstName = _firstName,
LastName = _lastName,
Username = _userName,
Password = _password //TODO: Hashing of password
};
using (var context = new WorkstreamContext())
{
var users = context.Set<User>();
users.Add(newUser);
context.SaveChanges();
}
}
else
{
UsernameAvailable = true; // TODO: Display TextBlock correctly
MessageBox.Show("Failed"); // TODO: Correctly show messages displaying what is incorrect with details
}
}
public bool IsPasswordValid()
{
return FirstName != string.Empty &&
LastName != string.Empty &&
UserName != string.Empty &&
Password.Any(char.IsUpper);
}
#endregion
メッセージボックスが表示されているが、しかしTextBlock
は表示されません。ここTextBlock
のXAMLです。 RegisterメソッドでUsernameがすでに使用されているかどうかを確認するときに、TextBlock
が表示されるようにするにはどうすればよいですか?