Мне нравится подход MultiBinding, описанный Мэттом. Однако я должен также отметить, что в зависимости от архитектуры вашего приложения создание свойства FullName, которое вы не хотите создавать, является одинаково действительным (и, возможно, более желательным) выбором.
Если бы вы использовали Model-View-ViewModel, у вас была бы ViewModel, которая открывала бы свойство FullName с единственной целью привязать его к представлению.
Например, если требования внезапно изменились так, что вам нужно было иметь возможность отформатировать его как First + Last или Last, First, в зависимости от параметра конфигурации, это было бы намного проще сделать в ViewModel. Аналогично, написание модульного теста для проверки того, что изменение FirstName или LastName также приводит к соответствующему изменению FullName, нецелесообразно при использовании прямого подхода XAML.
Но, как я уже сказал, все зависит от архитектуры вашего приложения.