首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何修改C#的控制内容(创建新内容,稍后恢复旧内容)?

如何修改C#的控制内容(创建新内容,稍后恢复旧内容)?
EN

Stack Overflow用户
提问于 2019-06-08 23:49:38
回答 1查看 34关注 0票数 -1

我需要通过代码修改我的XAML元素。我需要在ScrollViewer "XAML_ScrollViewer“中用新的content替换原来的content。简单的XAML代码示例。

<ScrollViewer x:Name="XAML_ScrollViewer">
    <ListView x:Name="XAML_ListView">
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="data:SomeInformation">
                <Grid>

                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</ScrollViewer>

为此,我使用以下代码。到目前为止一切都很好。新的content会像它应该做的那样出现。

C#

//SourceElementParent = XAML_ScrollViewer

//GET PRESENT CONTENT
FrameworkElement ControlOldContent = (SourceElementParent as ContentPresenter).Content as FrameworkElement;
//CREATE NEW GRID
Grid NewParentGrid = new Grid();
//USE NEW GRID AS CONTENT
(SourceElementParent as ContentPresenter).Content = NewParentGrid;
//ADD SOME ELEMENT 01
NewParentGrid.Children.Add(XAMLElement_01);
//ADD SOME ELEMENT 02
NewParentGrid.Children.Add(XAMLElement_02);
//ADD OLD CONTENTS INTO A NEW GRID
NewParentGrid.Children.Add(ControlOldContent );

但是当我需要恢复原来的content时,我不能这样做。以下代码可以工作,但必须保留在ScrollViewer中创建的Grid

C#

//CLEAR ALL CHILDREN OF THE GRID
((SourceElementParent  as ContentPresenter).Content as Grid).Children.Clear();
//ADD OLD CONTENT TO THE GRID
((SourceElementParent  as ContentPresenter).Content as Grid).Children.Add(ControlOldContent);

因为我想将控件ScrollViewer恢复到旧状态(修改之前的content),所以我还需要删除之前创建的Grid。但是如果我这样做,如果我用鼠标调整窗口大小,我会得到exception。如果我不调整大小,一切看起来都很好。

我得到了以下异常:

E= {Windows.UI.Xaml.UnhandledExceptionEventArgs}异常={“无效指针\r\n\r\n无效指针\r\n”}

我尝试使用下面的代码来恢复contents,但是失败了。

C#

//CLEAR ALL CHILDREN OF GRID
((SourceElementParent  as ContentPresenter).Content as Grid).Children.Clear();
//ADD ORIGINAL CONTENT
(SourceElementParent  as ContentPresenter).Content = ControlOldContent;

那么,有什么好的提示来解决这个问题吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56507881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档