簡體   English   中英

C#WPF綁定到DataBase

[英]C# WPF Binding to DataBase

嘿所有。 如果有些事情不清楚,請告訴我

我有dataGrid和TreeView。 我已將數據庫加載為實體數據模型和一些表。 其中一個表“relation”應該顯示給datagrid。 但是它的(關系表)列依賴於其他表作為系統,模型,功能和設備。 在數據網格中應該有4列,其中包含這些系統,型號,功能和設備的名稱。 (圖片1應該是)

它們如何顯示出來的問題。 DataSource運行不正常......見圖2。

<Grid DataContext="{StaticResource relationsViewSource}">
        <DataGrid AutoGenerateColumns="True" Name="gridInventory" HorizontalContentAlignment="Right" Margin="255,12,12,128" ItemsSource="{Binding}" />
        <StackPanel Height="391" HorizontalAlignment="Left" Margin="10,10,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="239" DataContext="{StaticResource systemsViewSource}" >
            <TreeView Height="391" Name="treeView1" Width="239" VerticalContentAlignment="Top" HorizontalAlignment="Left" VerticalAlignment="Top" ItemsSource="{Binding}" />
        </StackPanel>
    </Grid>

圖片1: 在此輸入圖像描述

圖2: 在此輸入圖像描述

在此輸入圖像描述

您將TreeView和一些DataGridDataGrid到對象,但不告訴WPF如何繪制對象。 當WPF不知道如何繪制object ,它默認使用TextBlock繪制它, Text綁定到對象的.ToString()

您需要設置ItemTemplate以告訴WPF如何繪制單個對象,例如:

<TreeView.ItemTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding Name}" />
    </DataTemplate>
</TreeView.ItemTemplate>

您還可以使用隱式DataTemplate告訴WPF如何繪制特定對象。 這只是一個DataTemplate,它指定沒有KeyDataType ,WPF會在嘗試渲染指定類型的對象時使用它。

如果要避免刪除AutoGenerateColumns="True"並手動指定DataGrid的列,這可能是要使用的方法。

<DataGrid.Resources>
    <DataTemplate DataType="{x:Type local:Device}">
        <TextBlock Text="{Binding Name}" />
    </DataTemplate>
</DataGrid.Resources>

TreeView需要將綁定上的路徑設置為要顯示的屬性,

Devices是一個集合,您需要在其中放置Listview或顯示集合的內容,然后在其上放置DataTemplate以顯示您需要的內容,或者綁定到轉換器以返回設備的靜態字符串表示形式名單

或者只是讓某人為你做這一切,就像在這里的情況似乎大聲笑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM