【问题标题】:How can i declare an array of custom objects in XAML and support binding如何在 XAML 中声明一组自定义对象并支持绑定
【发布时间】:2019-05-29 09:20:52
【问题描述】:

我一直在研究一个包含 ItemsControl 的 CustomControl。我添加了一个依赖属性,因此我可以在使用控件的 XAML 中设置 ItemsControl 的 ItemsSource 属性。我已经直接在 XAML 中声明了我的自定义对象数组。这很好用,但是我在 XAML 中的自定义对象上绑定任何公共属性时遇到了问题。自定义对象不是依赖对象...

我将不胜感激。

如果这太复杂而无法在 XAML 中实现,我只需将 ItemsSource 绑定到我的视图模型上的属性...

XAML:

<local:OptionsControl Title="Options" Message="Select an option:">
    <local:OptionsControl.Options>
        <x:Array Type="{x:Type local:OptionInfo}">
           <local:OptionInfo Name="OptionOne" SelectCommand="{Binding ?"}/>
           <local:OptionInfo Name="OptionTwo" SelectCommand="{Binding ?"}/>
           <local:OptionInfo Name="OptionThree" SelectCommand="{Binding ?"}/>
        </x:Array>
    </local:OptionsControl.Options>
</local:OptionsControl>           

【问题讨论】:

  • 这似乎没有任何意义。为什么要给自定义控件一个 ItemsSource 依赖属性,然后尝试在 XAML 本身中声明这些项目?然后将自己的属性绑定到其他数据?如果我错了,请纠正我,但您似乎认为您需要绑定到 DependencyObjects 或其他东西?

标签: wpf xaml user-interface


【解决方案1】:

你没有完全解释你在做什么。

您可以使用类型定义 x:array 并将 itemssource 绑定到该类型。您可以绑定到该类型的公共属性,没问题。

您甚至可以定义一个继承 observablecollection 的类,在 xaml 中定义该类的项目并将 itemssource 绑定到该类。

https://social.technet.microsoft.com/wiki/contents/articles/26200.wpf-dynamicresource-observablecollection.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-25
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2019-09-30
    • 1970-01-01
    相关资源
    最近更新 更多