現在、メイン アプリケーション ウィンドウと、TreeView 内の特定のものを変更するために使用される「エディター」ウィンドウ (部門) の 2 つのウィンドウがあります。最近、すべてのサブ部門/ショーを非表示にする機能を実装しましたが、これらすべてを非表示/表示すると、リフレッシュ機能を使用するまで元の選択のみが非表示/表示されるという問題があります...だから私の質問は..とにかく、エディターの受け入れボタンを設定してこれらは両方とも2つの別々のファイルであるため、ページを更新します「エクスプローラー」という名前のTreeViewにアクセスできないようです
現在の更新方法:
public void RefreshData()
{
explorer.Items.Clear();
using (new SessionConnecter(session))
{
var topLevelDepartments = session.CreateCriteria(typeof(Department))
.Add(NHibernate.Expression.Expression.Eq(Department.IS_TOP_LEVEL, true))
.List<Department>();
foreach (Department d in topLevelDepartments)
{
explorer.Items.Add(Fabric.ObjectProvider.Get<INodeWrapperFactory>().Create(d));
}
}
}
現在の保存コード:
void Save(object sender, ExecutedRoutedEventArgs e)
{
FocusManager.SetFocusedElement(GetWindow(savebutton), savebutton);
if (!session.IsConnected)
session.Reconnect();
try
{
if (ValidateModel())
{
session.Save(model);
if (pendingParent != null)
{
model.Parent = pendingParent;
// session.Save(pendingParent); - should cascade
}
session.Flush();
Close();
}
}
catch (NHibernate.Classic.ValidationFailure ex)
{
if (pendingParent != null)
session.Refresh(pendingParent);
if (session.IsConnected)
session.Disconnect();
MessageBox.Show(this, ex.Message, this.Title, MessageBoxButton.OK, MessageBoxImage.Warning);
}
}