【发布时间】:2017-10-31 22:51:11
【问题描述】:
如何将字典静态数据绑定为字典键?
我的 XAML 代码:
<TextBlock
x:Name="AxisXTextBlock"
Width="37"
Height="18"
Margin="106,19,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
FontFamily="Source Code Pro"
Text="{Binding DataStructure.DictionaryOfValuesReadOnly[AXIS_X].IntValue, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
TextWrapping="Wrap" />
字典键的静态数据类:
public static class DataNames
{
public static string SomeDataName { get; } = "some_data_name";
...
}
如何在 XAML 代码中将 DataNames.SomeDataName 绑定为我的字典的键?
更新
我使用字典转换器,然后将其绑定为 StaticResource
xmlns:converters="clr-namespace:AppName.Converters"
...
<converters:SomeConverter x:Key="SomeConverter " />
...
Text="{Binding Path=DataStructure, Converter={StaticResource SomeConverter}, ConverterParameter={x:Static data:DataNames.SomeDataName}}"
感谢mm8 帮助解决问题。他的答案包含字典转换器的代码。
【问题讨论】:
-
顺便说一句,如果您的
Binding是OneWay,那么将UpdateSourceTrigger设置为PropertyChanged毫无意义。 -
@dymanoid 哦,这是一个公平的评价。我在匆忙复制TextBlocks,忘记改变逻辑......谢谢你的评论
-
如果您还需要设置兼容性,我找到了一个解决方案:stackoverflow.com/a/51750919/6229375