在wpf的数据网格中插入组合框

发布于 2024-12-09 04:36:16 字数 897 浏览 0 评论 0原文

C#

 MainDataContext db = new MainDataContext();
var cat = from p in db.Categories
                      select p;
categoriesComboBox.ItemsSource = cat;
            categoriesComboBox.SelectedValuePath = "ID";
            categoriesComboBox.DisplayMemberPath = "CatName";

XAML

<Custom:DataGridComboBoxColumn                                    
Width="1*"                                  x:Name="categoriesComboBox" 
Header="Category"
ItemsSource="{Binding}"
SelectedValueBinding="{Binding Path=Category}"
SelectedValuePath="ID"
DisplayMemberPath="CatName"
/>

现在的问题是,我可以在加载时看到 comobox 中的名称...当我单击组合框时,下拉列表会显示每个项目的 MainDataContext.Category...

当我单击任何下拉列表时项目..选择正确的值并..在组合框中显示我...

加载网格时... 在 i 双击该列之后..

C#

 MainDataContext db = new MainDataContext();
var cat = from p in db.Categories
                      select p;
categoriesComboBox.ItemsSource = cat;
            categoriesComboBox.SelectedValuePath = "ID";
            categoriesComboBox.DisplayMemberPath = "CatName";

XAML

<Custom:DataGridComboBoxColumn                                    
Width="1*"                                  x:Name="categoriesComboBox" 
Header="Category"
ItemsSource="{Binding}"
SelectedValueBinding="{Binding Path=Category}"
SelectedValuePath="ID"
DisplayMemberPath="CatName"
/>

Now the thing is i can see the name in the comobox when it loads... when i click on the combobox the dropdown shows me MainDataContext.Category for each and every item...

when i click on any of the drop down items.. its select the correct value and.. showing me in the combobox...

When the grid is loaded...
After the i double click on that column..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪之魂 2024-12-16 04:36:16

您不应该自己设置categoriesComboBox.ItemsSource = cat;,请尝试使用数据上下文进行设置:categoriesComboBox.DataContext = cat。不管怎样,您已经在 XAML 中获得了所需的绑定。

希望这是您的实际问题(因为我无法从您的问题中理解问题所在)。


编辑:从您的图像中,您需要为您的类型 MainContext.Category 指定一个 DataTemplate。如果没有它,则使用默认模板,该模板仅输出字符串表示形式。

You should not set categoriesComboBox.ItemsSource = cat; yourself, try doing it with the data context: categoriesComboBox.DataContext = cat. Anyway, you've got the needed bindings in your XAML.

Hope that this is your actual problem (since I didn't manage to understand what the problem is from your question).


Edit: from your images, you need to specify a DataTemplate for your type MainContext.Category. Without it, the default template is used, which just outputs the string representation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文