【问题标题】:How to add a resource as a binding in datagrid?如何在数据网格中添加资源作为绑定?
【发布时间】:2011-12-27 10:34:09
【问题描述】:

这是我的代码的一部分:

<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>

一切正常,除了这一行:

<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\}}" />

我如何做到这一点?

【问题讨论】:

    标签: wpf xaml data-binding datagrid resources


    【解决方案1】:

    据我所知,索引器必须是编译时常量,因此无法执行您正在尝试的操作。解决方法将取决于您的确切要求,但您可以拥有一个具有众所周知的名称的属性,该属性会根据当前时间步公开正确的结果。

    【讨论】:

    • 感谢您的回答,我按照您所说的解决方法进行了操作,并且有效。它看起来不像我想要的那么好,但它完成了工作。
    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多