微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

EntityFramework-编辑子项并传播更改

如何解决EntityFramework-编辑子项并传播更改

我有一个树状视图的经典场景和一个详细的面板来显示记录的详细信息。 我在详细信息面板中添加一个编辑按钮,该按钮将RichTextBox属性IsReadOnly从false更改为true,反之亦然。 当我编辑时,我有两个按钮:保存和取消。 问题是如何通过详细信息面板和树中的绑定传播更改。

假设显示的树是“名称-姓氏”。在详细信息中,我将有一个名称字段和一个姓氏字段 这两个字段都直接绑定到EF对象。

当我使用

_DbContext.Entry(_Paz).Reload();

修改的字段未更新... 另外,如果我打电话

_dbContext.SaveChangesAsync();

树状视图未更新...

我正在使用MVVM Light,但由于属性直接来自EF,所以无法调用Set()

这是TreeView:

            <TreeView
            x:Name="TreeView"
            Grid.Row="1"
            ItemTemplate="{StaticResource PAZHTemplate}"
            ItemsSource="{Binding Patients}"
            selecteditemchanged="select_selecteditemchanged"
            TreeViewItem.Expanded="ExpandItem" />

这是详细信息元素:

        <ContentControl
        Grid.Column="2"
        Margin="{StaticResource XSmallLeftTopMargin}"
        Content="{Binding Selected}"
        ContentTemplateSelector="{StaticResource ContentTemplateSelector}" />

我们在这里选择器:

   <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Titodoc\TPazDictionary.xaml" />
    <ResourceDictionary Source="Titodoc\TAppDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>

<templateSelectors:TreeViewDataContentTemplateSelector
    x:Key="ContentTemplateSelector"
    APPTemplate="{StaticResource APPContentTemplate}"
    APRTemplate="{StaticResource APRContentTemplate}"/>

这是TPazDictionary.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DataTemplate x:Key="PAZContentTemplate" x:Name="PAZContentTemplate">
    <ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Auto">
        <StackPanel>
            <Grid>
                <Grid.ColumnDeFinitions>
                    <ColumnDeFinition Width="*" MinWidth="40" />
                    <ColumnDeFinition Width="Auto" MinWidth="40" />
                    <ColumnDeFinition Width="Auto" MinWidth="40" />
                </Grid.ColumnDeFinitions>
                <TextBlock
                    Grid.Column="0"
                    Style="{DynamicResource ContentHeader}"
                    Text="{Binding Name}" />

                <Button
                    x:Name="Save"
                    Grid.Column="1"
                    Content="&#xE74E;"
                    Command="{Binding CmdsaveSwitch,Mode=OneWay}"
                    ContentTemplate="{StaticResource IconFilterButton}"
                    DockPanel.Dock="Right"
                    ToolTipService.ToolTip="Save"
                    Visibility="{Binding IsVisible}" />
                <Button
                    x:Name="LockUnlock"
                    Grid.Column="2"
                    Command="{Binding CmdEditSwitch,Mode=OneWay}"
                    Content="{Binding Icon}"
                    ContentTemplate="{StaticResource IconFilterButton}"
                    DockPanel.Dock="Right"
                    ToolTipService.ToolTip="Edit" />

            </Grid>
            <Grid Margin="0,6,0">
                <Grid.ColumnDeFinitions>
                    <ColumnDeFinition Width="*" MinWidth="40" />
                    <ColumnDeFinition Width="*" MinWidth="40" />
                </Grid.ColumnDeFinitions>
                <Grid.RowDeFinitions>
                    <RowDeFinition Height="Auto" MinHeight="12" />
                    <RowDeFinition Height="Auto" MinHeight="12" />
                </Grid.RowDeFinitions>
                <TextBlock
                    Grid.Row="0"
                    Grid.Column="0"
                    Padding="2"
                    Style="{DynamicResource ContentLabel}"
                    Text="Cognome" />
                <TextBox
                    Grid.Row="1"
                    Grid.Column="0"
                    IsReadOnly="{Binding IsReadOnly}"
                    Text="{Binding Paz.Cognome}" />
                <TextBlock
                    Grid.Row="0"
                    Grid.Column="1"
                    Style="{DynamicResource ContentLabel}"
                    Text="Nome" />
                <TextBlock
                    Grid.Row="1"
                    Grid.Column="1"
                    Style="{DynamicResource ContentData}"
                    Text="{Binding Paz.Nome}" />
            </Grid>
        </StackPanel>
    </ScrollViewer>
</DataTemplate>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。