Wpf 如何在datagrid中添加资源作为绑定?
这是我代码的一部分:Wpf 如何在datagrid中添加资源作为绑定?,wpf,xaml,data-binding,datagrid,resources,Wpf,Xaml,Data Binding,Datagrid,Resources,这是我代码的一部分: <ribbon:RibbonWindow x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:
<ribbon:RibbonWindow x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
x:Name="RibbonWindow"
Width="850" Height="600">
<Window.Resources>
<ResourceDictionary>
<sys:Int32 x:Key="Timestep">0</sys:Int32>
<CollectionViewSource x:Key="cvsNodes" />
</ResourceDictionary>
</Window.Resources>
...
<DataGrid x:Name="NodeDataGrid" Grid.Row="1" AutoGenerateColumns="False" AlternatingRowBackground="Linen" IsReadOnly="True" ItemsSource="{Binding Source={StaticResource cvsNodes}}">
<DataGrid.Columns>
<DataGridTextColumn Header="Node" Binding="{Binding Path=ID}" SortDirection="Ascending" />
<DataGridTextColumn Header="X" Binding="{Binding Path=Position.X, StringFormat=\{0:F\}}" />
<DataGridTextColumn Header="Y" Binding="{Binding Path=Position.Y, StringFormat=\{0:F\}}" />
<DataGridTextColumn Header="Z" Binding="{Binding Path=Position.Z, StringFormat=\{0:F\}}" />
<DataGridTextColumn Header="Pressure (s)" Binding="{Binding Path=Results[{DynamicResource Timestep}].PressureSupply, StringFormat=\{0:F\}}" />
</DataGrid.Columns>
</DataGrid>
...
</ribbon:RibbonWindow>
0
...
...
一切正常,除了这一行:
<DataGridTextColumn Header="Pressure (s)" Binding="{Binding Path=Results[{DynamicResource Timestep}].PressureSupply, StringFormat=\{0:F\}}" />
但是,这是可行的(我将{DynamicResource Timestep}替换为0):
如何实现这一点?据我所知,索引器必须是编译时常量,因此无法执行您正在尝试的操作。解决方案将取决于您的具体要求,但您可以拥有一个具有众所周知的名称的属性,该属性根据当前时间步长公开正确的结果。谢谢您的回答,我按照您所说的解决方案做了,它可以工作。它看起来没有我想要的那么好,但它完成了任务。
<DataGridTextColumn Header="Pressure (s)" Binding="{Binding Path=Results[0].PressureSupply, StringFormat=\{0:F\}}" />