OrderBy 拡張メソッドはコレクションを並べ替えずに IOrderdEnumerable を返すので、これを処理するには次のようにする必要があります。
DestMenu = new ObservableCollection<MenuModel>(DestMenu.OrderBy(o=>o.MenuName));
もちろん、ObservableCollection を使用すると、ビュー上で項目を更新する必要があります。これは、この並べ替えのアプローチを使用するときに実際には発生しません。ObservableCollection は、CollectionChanged イベントを発生させるため、ビュー上の項目を更新しますが、実際には、コレクション内の要素ではなく、コレクション自体を変更しました。コレクションなので、次のことを行うとよいでしょう
public YourClass : INotifyPropertyChanged
{
void YourMethod()
{
DestMenu = new ObservableCollection<MenuModel>(DestMenu.OrderBy(o=>o.MenuName));
RaisePropertyChanged("DestMenu");
}
event PropertyChangedEventHandler PropertyChanged;
void RaisePropertyChanged(string PropertyName)
{
var handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(PropertyName));
}
}