gpt4 book ai didi

c# - 在后面的代码中获取和设置绑定(bind)转换器

转载 作者:行者123 更新时间:2023-12-02 22:30:25 24 4
gpt4 key购买 nike

我以这种方式在我的 XAML 中为 TextBlockText 属性设置了一个绑定(bind):

<TextBlock x:Name="MyTextBlock" TextWrapping="Wrap" Text="{Binding TextProperty, Converter={StaticResource MyConverter}}"/>

我想根据当前使用的代码隐藏更改转换器。如何从后面的代码获取和设置绑定(bind)转换器?我喜欢这样的东西:

if (converter = x)
converter = y;
else
converter = x;

最佳答案

您需要获取绑定(bind)本身:

//For WPF:
// var binding = BindingOperations.GetBindingBase(
// MyTextBlock,
// TextBlock.TextProperty);

//For SilverLight we have to use the expression:
var expr = MyTextBlock.GetBindingExpression(TextBlock.TextProperty);
if (expr != null)
{
// for Silverlight we have to use the ParentBinding of the expression
var binding = expr.ParentBinding;
binding.Converter = yourLogicHere;

// in WPF there are 3 types of bindings
/*
else if (binding is MultiBinding)
{
((MultiBinding)binding).Converter = yourMultiLogicHere;
}
else if (binding is PriorityBinding)
{
foreach (var childBinding in ((PriorityBinding)binding).Bindings)
{
((Binding)childBinding).Converter = yourLogicHere;
}
}
*/
}

关于c# - 在后面的代码中获取和设置绑定(bind)转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12355837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com