【问题标题】:How to bind a Dictionary<enum,bool> property to a GridViewColumn?如何将 Dictionary<enum,bool> 属性绑定到 GridViewColumn?
【发布时间】:2011-07-06 20:11:56
【问题描述】:

我正在尝试将存储在 EffectViewModel 中的 Dictionary 属性绑定到 ObservableCollection 中,但它在我希望将其视为复选框的列中显示为“(集合)”。

GridViewColumn 的 Xaml 是这样的:

<GridViewColumn
    Width="100"
    Header="GPU"
    DisplayMemberBinding="{Binding ShaderSupport}">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <CheckBox Margin="0"
                        HorizontalAlignment="Center"
                        IsChecked="{Binding Value}"/>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

ShaderSupportDictionary&lt;ShaderType, bool&gt; 类型,我只想读取此 GridViewColumn 的 ShaderType.GPU 的布尔值。

有什么想法吗?

编辑:使用它显示布尔值作为字符串,所以我认为我在正确的道路上:

DisplayMemberBinding="{Binding ShaderSupport[GPU]}">

【问题讨论】:

    标签: c# .net wpf data-binding listview


    【解决方案1】:

    试试这个:

    <GridViewColumn
        Width="100"
        Header="GPU">
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                <CheckBox Margin="0"
                            HorizontalAlignment="Center"
                            IsChecked="{Binding ShaderSupport[CPU]}"/>
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>
    

    【讨论】:

    • 谢谢帕夫洛,这很好用。如果我希望这是 2-way,仅使用 Mode=TwoWay 会起作用吗?
    • @Joan - 我没试过,但我看不出有什么理由不这样做。
    猜你喜欢
    • 2011-07-06
    • 2013-12-19
    • 2019-12-13
    • 2017-09-14
    • 2013-11-29
    • 1970-01-01
    • 2021-12-05
    • 2016-05-09
    • 2011-06-21
    相关资源
    最近更新 更多