相关疑难解决方法(0)

使用TemplateColumns将WPF DataGrid绑定到DataTable

我已经尝试了一切,无处可去,所以我希望有人可以给我一点时间.我根本无法获得绑定来成功地拉取数据网格中的数据.

我有一个DataTable,其中包含多个MyDataType列

public class MyData
{
    string nameData {get;set;}
    bool showData {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

MyDataType有2个属性(一个字符串,一个布尔值)我创建了一个测试DataTable

DataTable GetDummyData()
{
    DataTable dt = new DataTable("Foo");
    dt.Columns.Add(new DataColumn("AnotherColumn", typeof(MyData)));
    dt.Rows.Add(new MyData("Row1C1", true));
    dt.Rows.Add(new MyData("Row2C1", false));
    dt.AcceptChanges();
    return dt;
}
Run Code Online (Sandbox Code Playgroud)

我有一个WPF DataGrid,我想展示我的DataTable.但我想做的就是改变每个单元格的呈现方式,以便每个单元格显示[TextBlock] [Button],并将值绑定到MyData对象,这就是我遇到麻烦的地方.

我的XAML看起来像这样

<Window.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="MyDataTemplate" DataType="MyData">
            <StackPanel Orientation="Horizontal" >
                <Button Background="Green" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5,0,0,0" Content="{Binding Path=nameData}"></Button>
                <TextBlock Background="Green" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,0,0" Text="{Binding Path=nameData}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </ResourceDictionary>
</Window.Resources>
<Grid>
    <dg:DataGrid Grid.Row="1" ItemsSource="{Binding}" AutoGenerateColumns="True"
                 x:Name="dataGrid1" SelectionMode="Single" CanUserAddRows="False"
                 CanUserSortColumns="true" CanUserDeleteRows="False" AlternatingRowBackground="AliceBlue"
                 AutoGeneratingColumn="dataGrid1_AutoGeneratingColumn" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

现在我加载的所有内容都是尝试将DataTable绑定到WPF …

data-binding wpf datatable binding datagrid

8
推荐指数
2
解决办法
4万
查看次数

标签 统计

binding ×1

data-binding ×1

datagrid ×1

datatable ×1

wpf ×1