/// <summary>
        /// 初始化container的选中Item策略
        /// </summary>
        /// <param name="container"></param>
        /// <param name="selectedItemGetter"></param>
        public static void InitSelecter(FrameworkElement container, Func <object> selectedItemGetter)
        {
            Func <ItemSelecter> selecterCreater;

            _selecters.TryGetValue(container.GetType(), out selecterCreater);
            if (selecterCreater != null)//container载入的时候定位到指定项
            {
                container.Loaded += (s, e) =>
                {
                    ItemSelecter selecter = selecterCreater();
                    selecter.m_container = container;
                    selecter.SelectItem(container, selectedItemGetter());
                };

                container.TargetUpdated += (s, e) =>
                {
                    if (!container.IsLoaded)
                    {
                        return;
                    }
                    ItemSelecter selecter = selecterCreater();
                    selecter.m_container = container;
                    selecter.SelectItem(container, selectedItemGetter());
                };
            }
        }
 protected override void OnAttached()
 {
     //使用委托取值,因为在OnAttached时SelectedItem还未赋值
     ItemSelecter.InitSelecter(AssociatedObject, () => SelectedItem);
     base.OnAttached();
 }