我有一个包含三个选项卡的 TabControl,每个选项卡都包含一个绑定(bind)到数据列表的 DataGrid。 View 背后的模型设置有延迟加载的属性。
<TabControl>
<TabItem>
<DataGrid ItemsSource="{Binding FirstList}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Column1" Binding="{Binding Property1}" />
<DataGridTextColumn Header="Column2" Binding="{Binding Property2}" />
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabItem>
<DataGrid ItemsSource="{Binding SecondList}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Column1" Binding="{Binding Property1}" />
<DataGridTextColumn Header="Column2" Binding="{Binding Property2}" />
</DataGrid.Columns>
</DataGrid>
</TabItem>
<TabItem>
<DataGrid ItemsSource="{Binding ThirdList}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Column1" Binding="{Binding Property1}" />
<DataGridTextColumn Header="Column2" Binding="{Binding Property2}" />
</DataGrid.Columns>
</DataGrid>
</TabItem>
</TabControl>
我的意图是每个列表只应在单击相关选项卡时加载。但是,我最终加载了所有列表。
有没有办法为每个 TabItem 延迟加载绑定(bind)?
谢谢!
最佳答案
我也遇到了这个问题,并最终向我绑定(bind)到 TabItems 的 IsSelected
属性的数据源添加了一个“Loaded”属性,并以这种方式延迟加载数据。考虑一下,也许使用 Datatemplates 也会奏效。
关于c# - TabControl WPF 中的延迟加载数据绑定(bind)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782773/