gpt4 book ai didi

c# - ContentView 中的 BindableProperty 不起作用

转载 作者:太空狗 更新时间:2023-10-29 19:49:48 25 4
gpt4 key购买 nike

我制作了一个非常简单的是/否 RadioBox 控件。

在其背后的代码中,我有以下 BindableProperty:

    public static readonly BindableProperty SelectedValueProperty = BindableProperty.Create(
"SelectedValue",
typeof(int),
typeof(YesNoView),
0,
BindingMode.TwoWay);

它的属性:

    public int SelectedValue
{
get { return (int) GetValue(SelectedValueProperty); }
set { SetValue(SelectedValueProperty, value); }
}

此属性使用如下内容绑定(bind)在 ContentView-XAML 中:

          <DataTrigger Binding="{Binding SelectedValue}" Value="0" TargetType="Image">
<Setter Property="Source" Value="radiobutton_checked.png" />
</DataTrigger>

每当我在某些页面中使用我的 ContentView 并将 SelectedValue 设置为常量值时,一切正常!

但是,当我使用 {Binding SomeValue} 而不是常量值时,其中 SomeValue 是页面上的一个属性(带有通知),我正在使用ContentView 上,它会简单地拒绝做任何事情。每当我将 SomeValue 设置为某个值时,它永远不会到达 ContentView,这让我发疯为什么它不起作用。

即使我将 BindableProperty 调整为也指定一个 propertyChanged 事件,它也永远不会被触发,除非我恢复为 Xaml 中的常量值,而不是绑定(bind)。

谁能阐明为什么会发生这种情况而不是像我预期的那样工作?

编辑:我应该在页面和 View 中添加 BindingContext 设置为此。

最佳答案

我在总共浪费了 4 个小时后弄明白了...

永远不要在您的 ContentView 中执行 BindingContext = this;,因为它劫持了试图数据绑定(bind)到它的页面的上下文。而是使用 Content.BindingContext = this;

关于c# - ContentView 中的 BindableProperty 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989536/

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