【问题标题】:How to Set a Value Dynamically to the WPF datagrid Cells如何为 WPF 数据网格单元动态设置值
【发布时间】:2011-07-11 03:05:16
【问题描述】:

我创建了一个 WPF 数据网格,并且列是静态的(服装列)。数据网格行根据数据表行中的数据进行绑定。我想从另一个 ArrayList 动态设置 WPF DataGrid 单元格的值。

我没有找到行的单元格索引,例如 dataGrid.Rows[i].Cells[j] = ArrayList[k]

谁能帮帮我?我是 WPF 新手。

提前致谢。

【问题讨论】:

    标签: wpf wpf-controls wpfdatagrid


    【解决方案1】:

    如果你有静态 ArrayList,你的代码可以是这样的:

    <Grid Name="MyArray" Margin=”10”>
        <Grid.DataContext>
            <x:Array Type=”sys:String”>
            <sys:String>Red</sys:String>
            <sys:String>Yellow</sys:String>
            <sys:String>Lime</sys:String>
            <sys:String>Cyan</sys:String>
            <sys:String>Blue</sys:String>
            <sys:String>Magenta</sys:String>
            </x:Array>
        </Grid.DataContext>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width=”*”/>
        </Grid.ColumnDefinitions>
        <!--here your dataGrid-->
        then you should write like this
        <Label Content="{Binding ElementName=MyArray, Path=DataContext[0]}" />
        and so on...
        </Grid>
    

    如果我理解错了,请纠正我。

    【讨论】:

    • 如果您的数组列表是动态的,您可以在代码隐藏中访问Grid.DataContext 属性,并写下:Grid.DataContext = MyDynamicArrayList,例如在Initialize() 之后,并从 xaml 中删除 DataContext 定义。
    • &lt;Label Content="{DynamicResource ElementName=MyArray, Path=DataContext[0]}" /&gt;
    • 我有一个带有 26 个静态列(时间栏)的 Wpf dataGrid。我的前 2 列通过来自数据库的数据表进行绑定。我从数据库中收集了其他数据并存储在 ArrayList 中。现在我想根据特定条件 [ if (stdtime == dataGrid.Columns[k].Header.ToString()) ] 在 Datagrid 单元格中动态显示 Arraylist 数据,但我无法找到如何设置该值... [像windows窗体--->datagrid.Rows[].cells[]==一些值].
    • 我认为 DataGrid 的 Items 集合属性是您所需要的。它就像 The Row,但更聪明一些。试试看一下msdn,有很多例子。
    猜你喜欢
    • 2013-06-10
    • 2013-03-23
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多