首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# WPF组合框TextElement.Foreground绑定

C# WPF组合框TextElement.Foreground绑定
EN

Stack Overflow用户
提问于 2018-08-13 14:39:01
回答 1查看 390关注 0票数 1

我希望将组合框的TextElement.Foreground属性链接到对象:"tValeur"的变量:"ALV_COULEUR"

我在输出中注意到,它没有找到变量ALV_COULEUR .

System.Windows.Data错误: 40 : BindingExpression路径错误:'ALV_COULEUR‘属性没有在'object’Attribut‘(HashCode=35307513)’上找到。BindingExpression:Path=ALV_COULEUR;DataItem='Attribut‘(HashCode=35307513);目标元素为'ComboBox’(名称=‘’);目标属性为‘前台’(键入'Brush')

链接的对象是值,而不是“Attribut”.

在这种情况下不可能有约束力吗?

谢谢!

代码语言:javascript
复制
<ComboBox IsEditable="True"
          TextElement.Foreground="{Binding ALV_COULEUR, Converter={StaticResource IntToBrushConverter}, Mode=OneWay}"
          ItemsSource="{Binding tValeur, Mode=OneWay}" SelectedValuePath="ALV_ID" DisplayMemberPath="ALV_VALEUR"
          SelectedValue="{Binding ATT_VALEUR, Converter={StaticResource StringToIntConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
          IsEnabled="{Binding IsEnabled, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
</ComboBox>

编辑:

我的课:

代码语言:javascript
复制
public class Attribut
{
    public int                      ATT_ID          { get; set; }
    public string                   ATT_LIBELLE     { get; set; }

    public List<ValeurAttribut>     tValeur         { get; set; }
}

public class ValeurAttribut
{
    public int      ALV_ID      { get; set; }
    public string   ALV_VALEUR  { get; set; }
    public int      ALV_COULEUR { get; set; }
}

DataContext :链接到ObservableCollection<Attribut>()DataGrid

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-13 14:54:26

使用ItemTemplate定义TextBlock,并将其Foreground属性绑定到ALV_COULEUR源属性。还将TextBlock.Foreground绑定到ComboBoxSelectedItem属性

代码语言:javascript
复制
<ComboBox IsEditable="True"
          TextBlock.Foreground="{Binding SelectedItem.ALV_COULEUR, Converter={StaticResource IntToBrushConverter}, RelativeSource={RelativeSource Self}}">
          ItemsSource="{Binding tValeur, Mode=OneWay}" SelectedValuePath="ALV_ID" DisplayMemberPath="ALV_VALEUR"
          SelectedValue="{Binding ATT_VALEUR, Converter={StaticResource StringToIntConverter}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
          IsEnabled="{Binding IsEnabled, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ALV_VALEUR}" Foreground="{Binding ALV_COULEUR, Converter={StaticResource IntToBrushConverter}}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51824890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档