Wpf 未按照视图中的选定日期获取更新是否包含绑定了常规列表的Datagrid?

Wpf 未按照视图中的选定日期获取更新是否包含绑定了常规列表的Datagrid?,wpf,xaml,data-binding,mvvm,wpfdatagrid,Wpf,Xaml,Data Binding,Mvvm,Wpfdatagrid,我已使用选项卡控件查看我的用户控件。。 在第一个用户控件中 我使用datagrid来显示记录,对于绑定,我使用了通用列表。 如果要根据所选日期更改此列表,则该集合在数据库和viewmodel中也会更改,因为列表的set property get会执行,但在视图中,当我选择new tab,然后返回prevois tab时,列表的get属性会执行,然后我就可以根据所选日期获得视图 我的主视图和包含第一个usercontrol作为第一个选项卡项的主视图如下所示: <Dat

我已使用选项卡控件查看我的用户控件。。 在第一个用户控件中 我使用datagrid来显示记录,对于绑定,我使用了通用列表。 如果要根据所选日期更改此列表,则该集合在数据库和viewmodel中也会更改,因为列表的set property get会执行,但在视图中,当我选择new tab,然后返回prevois tab时,列表的get属性会执行,然后我就可以根据所选日期获得视图

我的主视图和包含第一个usercontrol作为第一个选项卡项的主视图如下所示:

            <DataGrid
                Background="Transparent"
                CanUserAddRows="True"
                CanUserReorderColumns="False"

                ItemsSource="{Binding Model_Transactions_TransactionsDetails_Jama,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
                HeadersVisibility="Column">
            </DataGrid>
            <Grid DockPanel.Dock="Bottom" VerticalAlignment="Bottom" >
                <Border BorderBrush="Black" BorderThickness="1" >
                    <Label HorizontalAlignment="Left" HorizontalContentAlignment="Right"  Width="75" Content="{Binding SumOfWeightJama,UpdateSourceTrigger=PropertyChanged}" FontFamily="Segoe UI" FontWeight="Bold"  FontSize="16" />
                </Border>
            </Grid>
            <DataGrid 
                Background="Transparent"
                CanUserAddRows="True"
                CanUserReorderColumns="False"
                ItemsSource="{Binding  Model_Transactions_TransactionsDetails_Udhar,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                HeadersVisibility="Column">
            </DataGrid>
            <Grid DockPanel.Dock="Bottom" VerticalAlignment="Bottom">
                <Border BorderBrush="Black" BorderThickness="1">
                    <Label Width="75" HorizontalAlignment="Left" HorizontalContentAlignment="Right"  Content="{Binding SumOfWeightUdhar,UpdateSourceTrigger=PropertyChanged}" FontFamily="Segoe UI" FontWeight="Bold"  FontSize="16"/>
                </Border>
            </Grid>
private DateTime _FilterDate ;
public DateTime FilterDate
{
    get
    {
         return _FilterDate;
    }
    set
    {
        _FilterDate = value;
        OnPropertyChanged("FilterDate");
        Model_Transactions_TransactionsDetails_Jama = (ViewModel.AllDataCollactions.AllTransactionsDetails.Where(s => s.TransactionDate.Equals(FilterDate) && s.IsJama).OrderBy(s => s.TransactionsID)).ToList();
        Model_Transactions_TransactionsDetails_Udhar = (ViewModel.AllDataCollactions.AllTransactionsDetails.Where(s => s.TransactionDate.Equals(FilterDate) && !s.IsJama).OrderBy(s => s.TransactionsID)).ToList();

    }
}
public List<Model_TransactionsDetails> Model_Transactions_TransactionsDetails_Jama
{
    get
    {
        return model_Transactions_TransactionsDetails_Jama;
    }
    set
    {
        model_Transactions_TransactionsDetails_Jama = value;
        OnPropertyChanged("Model_Transactions_TransactionsDetails_Jama");
    }
}
public List<Model_TransactionsDetails> Model_Transactions_TransactionsDetails_Udhar
{
    get
    {
        return model_Transactions_TransactionsDetails_Udhar;
    }
     set
    {
        model_Transactions_TransactionsDetails_Udhar = value;
        OnPropertyChanged("Model_Transactions_TransactionsDetails_Udhar");
    }
}
public ViewModel_MasterBook()
{
    FilterDate = DateTime.Now.AddDays(-1).Date;
    InsertCommand = new RelayCommand(AddExecute, CanAdd);
}

上述视图的Xaml代码如下所示:

            <DataGrid
                Background="Transparent"
                CanUserAddRows="True"
                CanUserReorderColumns="False"

                ItemsSource="{Binding Model_Transactions_TransactionsDetails_Jama,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
                HeadersVisibility="Column">
            </DataGrid>
            <Grid DockPanel.Dock="Bottom" VerticalAlignment="Bottom" >
                <Border BorderBrush="Black" BorderThickness="1" >
                    <Label HorizontalAlignment="Left" HorizontalContentAlignment="Right"  Width="75" Content="{Binding SumOfWeightJama,UpdateSourceTrigger=PropertyChanged}" FontFamily="Segoe UI" FontWeight="Bold"  FontSize="16" />
                </Border>
            </Grid>
            <DataGrid 
                Background="Transparent"
                CanUserAddRows="True"
                CanUserReorderColumns="False"
                ItemsSource="{Binding  Model_Transactions_TransactionsDetails_Udhar,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                HeadersVisibility="Column">
            </DataGrid>
            <Grid DockPanel.Dock="Bottom" VerticalAlignment="Bottom">
                <Border BorderBrush="Black" BorderThickness="1">
                    <Label Width="75" HorizontalAlignment="Left" HorizontalContentAlignment="Right"  Content="{Binding SumOfWeightUdhar,UpdateSourceTrigger=PropertyChanged}" FontFamily="Segoe UI" FontWeight="Bold"  FontSize="16"/>
                </Border>
            </Grid>
private DateTime _FilterDate ;
public DateTime FilterDate
{
    get
    {
         return _FilterDate;
    }
    set
    {
        _FilterDate = value;
        OnPropertyChanged("FilterDate");
        Model_Transactions_TransactionsDetails_Jama = (ViewModel.AllDataCollactions.AllTransactionsDetails.Where(s => s.TransactionDate.Equals(FilterDate) && s.IsJama).OrderBy(s => s.TransactionsID)).ToList();
        Model_Transactions_TransactionsDetails_Udhar = (ViewModel.AllDataCollactions.AllTransactionsDetails.Where(s => s.TransactionDate.Equals(FilterDate) && !s.IsJama).OrderBy(s => s.TransactionsID)).ToList();

    }
}
public List<Model_TransactionsDetails> Model_Transactions_TransactionsDetails_Jama
{
    get
    {
        return model_Transactions_TransactionsDetails_Jama;
    }
    set
    {
        model_Transactions_TransactionsDetails_Jama = value;
        OnPropertyChanged("Model_Transactions_TransactionsDetails_Jama");
    }
}
public List<Model_TransactionsDetails> Model_Transactions_TransactionsDetails_Udhar
{
    get
    {
        return model_Transactions_TransactionsDetails_Udhar;
    }
     set
    {
        model_Transactions_TransactionsDetails_Udhar = value;
        OnPropertyChanged("Model_Transactions_TransactionsDetails_Udhar");
    }
}
public ViewModel_MasterBook()
{
    FilterDate = DateTime.Now.AddDays(-1).Date;
    InsertCommand = new RelayCommand(AddExecute, CanAdd);
}

上述视图的视图模型如下所示:

            <DataGrid
                Background="Transparent"
                CanUserAddRows="True"
                CanUserReorderColumns="False"

                ItemsSource="{Binding Model_Transactions_TransactionsDetails_Jama,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
                HeadersVisibility="Column">
            </DataGrid>
            <Grid DockPanel.Dock="Bottom" VerticalAlignment="Bottom" >
                <Border BorderBrush="Black" BorderThickness="1" >
                    <Label HorizontalAlignment="Left" HorizontalContentAlignment="Right"  Width="75" Content="{Binding SumOfWeightJama,UpdateSourceTrigger=PropertyChanged}" FontFamily="Segoe UI" FontWeight="Bold"  FontSize="16" />
                </Border>
            </Grid>
            <DataGrid 
                Background="Transparent"
                CanUserAddRows="True"
                CanUserReorderColumns="False"
                ItemsSource="{Binding  Model_Transactions_TransactionsDetails_Udhar,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                HeadersVisibility="Column">
            </DataGrid>
            <Grid DockPanel.Dock="Bottom" VerticalAlignment="Bottom">
                <Border BorderBrush="Black" BorderThickness="1">
                    <Label Width="75" HorizontalAlignment="Left" HorizontalContentAlignment="Right"  Content="{Binding SumOfWeightUdhar,UpdateSourceTrigger=PropertyChanged}" FontFamily="Segoe UI" FontWeight="Bold"  FontSize="16"/>
                </Border>
            </Grid>
private DateTime _FilterDate ;
public DateTime FilterDate
{
    get
    {
         return _FilterDate;
    }
    set
    {
        _FilterDate = value;
        OnPropertyChanged("FilterDate");
        Model_Transactions_TransactionsDetails_Jama = (ViewModel.AllDataCollactions.AllTransactionsDetails.Where(s => s.TransactionDate.Equals(FilterDate) && s.IsJama).OrderBy(s => s.TransactionsID)).ToList();
        Model_Transactions_TransactionsDetails_Udhar = (ViewModel.AllDataCollactions.AllTransactionsDetails.Where(s => s.TransactionDate.Equals(FilterDate) && !s.IsJama).OrderBy(s => s.TransactionsID)).ToList();

    }
}
public List<Model_TransactionsDetails> Model_Transactions_TransactionsDetails_Jama
{
    get
    {
        return model_Transactions_TransactionsDetails_Jama;
    }
    set
    {
        model_Transactions_TransactionsDetails_Jama = value;
        OnPropertyChanged("Model_Transactions_TransactionsDetails_Jama");
    }
}
public List<Model_TransactionsDetails> Model_Transactions_TransactionsDetails_Udhar
{
    get
    {
        return model_Transactions_TransactionsDetails_Udhar;
    }
     set
    {
        model_Transactions_TransactionsDetails_Udhar = value;
        OnPropertyChanged("Model_Transactions_TransactionsDetails_Udhar");
    }
}
public ViewModel_MasterBook()
{
    FilterDate = DateTime.Now.AddDays(-1).Date;
    InsertCommand = new RelayCommand(AddExecute, CanAdd);
}
private DateTime\u FilterDate;
公共日期时间筛选器日期
{
得到
{
返回过滤日期;
}
设置
{
_FilterDate=值;
不动产变更(“过滤日期”);
Model_Transactions_transactionDetails_Jama=(ViewModel.alldatacollations.alltransactionDetails.Where(s=>s.TransactionDate.Equals(FilterDate)和&s.IsJama).OrderBy(s=>s.transactionId)).ToList();
Model_Transactions_transactionDetails_Udhar=(ViewModel.alldatacollations.alltransactionDetails.Where(s=>s.TransactionDate.Equals(FilterDate)和&!s.IsJama).OrderBy(s=>s.TransactionId)).ToList();
}
}
公共列表模型\u事务\u事务详细信息\u Jama
{
得到
{
返回模型\u事务\u事务详细信息\u Jama;
}
设置
{
模型\u事务\u事务详细信息\u Jama=值;
OnPropertyChanged(“模型交易详细信息”);
}
}
公共列表模型\u事务\u事务详细信息\u Udhar
{
得到
{
返回模型\u事务\u事务详细信息\u Udhar;
}
设置
{
模型\u事务\u事务详细信息\u Udhar=值;
OnPropertyChanged(“模型交易详细信息”);
}
}
公共视图模型_母版()
{
FilterDate=DateTime.Now.AddDays(-1).Date;
INSERTCOMAND=新的中继命令(AddExecute,CanAdd);
}

有人能帮我吗?我怎样才能立即按所选日期查看。

实际上应该可以,我看不出有错误。但是当我在我的WPF项目中使用某种列表时,我使用带有clear、add、delete的observablecollection

但首先我要改变装订

ItemsSource="{Binding Model_Transactions_TransactionsDetails_Jama,Mode=OneWay}" 
因为Mode=TwoWay没有意义,所以您从未将数据网格中的itemssource设置为viewmodel

第二,我将更改为ObservaleCollection

public ObservableCollection<Model_TransactionsDetails> Model_Transactions_TransactionsDetails_Jama
{
   get; private set;
}

嘿,我还有另一个问题,但这次我的集合没有改变,因为我的扩展器的IsExpaned属性改变了。在我的扩展器中,我有一个未更新的可观察集合。但当我移动到另一个选项卡并返回到上一个选项卡时,可观察集合会得到更新…我在datagrid中使用expander时在datagrid绑定中遇到了相同的问题。我的集合不会因为expander的IsExpaned属性更改而更改。在我的扩展器中,我有一个未更新的可观察集合。但当我移动到另一个选项卡并返回到上一个选项卡时,可观察的集合将得到更新…@blindmeis