【问题标题】:ComboBox databinding to window background组合框数据绑定到窗口背景
【发布时间】:2015-01-26 05:02:31
【问题描述】:

这里对WPFc# 非常陌生。我有兴趣拥有 ComboBox具有不同颜色选项,该选项将在选择选项时更新窗口的 Background

我想通过DataBinding 执行此操作,但我是菜鸟,无法做到。这就是我所拥有的。

MainWindow.xaml

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" 
        Background="{Binding SelectedValue,ElementName=combo,UpdateSourceTrigger=PropertyChanged}">
    <StackPanel>
        <ComboBox Name="combo">
            <ComboBoxItem>lightcoral</ComboBoxItem>
            <ComboBoxItem>khaki</ComboBoxItem>
        </ComboBox>
    </StackPanel>
</Window>

还有默认的MainWindow.xaml.cs(创建项目后就没碰过)

谢谢,如果您需要更多信息,请告诉我!

【问题讨论】:

  • 你可以在link找到一些解释和例子

标签: c# wpf xaml data-binding combobox


【解决方案1】:

实现此目的的一种可能方法是将string 类型的项目放入您的组合框中,而不是ComboBoxItems:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Background="{Binding SelectedItem, ElementName=combo}">
    <ComboBox VerticalAlignment="Center" HorizontalAlignment="Center" x:Name="combo">
        <sys:String>Yellow</sys:String>
        <sys:String>Green</sys:String>
        <sys:String>Red</sys:String>
        <sys:String>Blue</sys:String>
    </ComboBox>
</Window>
  • 请注意,我在 mscorlib.dll 程序集中声明了指向 System CLR 命名空间的 xmlns:sys XAML Namespace。这是定义类 System.String 的地方,您需要它才能在 XAML 中使用该类。

  • 1234563它不知道如何从它的每个项目中“检索价值”。
  • 还要注意UpdateSourceTrigger 已被删除,因为它没有任何意义。 UpdateSourceTrigger 确定 Binding source 的更新方式,而不是 target。阅读 MSDN 上的 DataBinding 以了解此处的术语。

  • 使用String 有效而使用ComboBoxItem 无效的原因是Brush 类(这是窗口背景的类型)的默认Type Converter“理解”如何从string 转换,而不是从ComboBoxItem 转换。

【讨论】:

    猜你喜欢
    • 2010-12-03
    • 2022-12-06
    • 2016-10-05
    • 2017-02-27
    • 2013-01-28
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多