【问题标题】:Custom Toggleswitch with binding to object绑定到对象的自定义切换开关
【发布时间】:2011-03-13 16:55:02
【问题描述】:

我正在尝试创建一个切换开关,它将在数据模板中将多行绑定到单个对象的不同属性。这些切换开关将位于列表框内。

我下面的 xaml 代码显示了当前的切换开关模板。使用下面的代码,只有标题正确绑定。我需要另外两行(在 ContentTemplate 中)和切换开关本身来绑定到对象的布尔属性。

                        <DataTemplate>
                            <toolkit:ToggleSwitch Header="{Binding Property1}" Width="450">
                                <toolkit:ToggleSwitch.HeaderTemplate>
                                    <DataTemplate>
                                        <ContentControl FontWeight="Black" FontSize="40" Foreground="{StaticResource PhoneForegroundBrush}" Content="{Binding}" VerticalAlignment="Top" />
                                    </DataTemplate>
                                </toolkit:ToggleSwitch.HeaderTemplate>
                                <toolkit:ToggleSwitch.ContentTemplate>
                                    <DataTemplate>
                                        <StackPanel>
                                            <TextBlock Text="{Binding Property2}" FontSize="32" FontWeight="Light"  Foreground="{StaticResource PhoneAccentBrush}" />
                                            <TextBlock Text="{Binding Property3}" FontSize="{StaticResource PhoneFontSizeSmall}" Foreground="{StaticResource PhoneSubtleBrush}" />
                                        </StackPanel>
                                    </DataTemplate>
                                </toolkit:ToggleSwitch.ContentTemplate>
                            </toolkit:ToggleSwitch>
                        </DataTemplate>                            

这里有什么关于如何达到我需要的结果的建议吗?

提前致谢!

这是我想要达到的目标

Property1 
Property2:On/Off                  [===]    (this is the toggle switch)
Property3

属性 1,2 和 3 也都将具有自定义格式。请记住,这些将位于列表框中,因此它们将绑定到一个集合。

【问题讨论】:

  • 您能否展示一张模拟图像来展示您想要实现的目标?
  • 我添加了一种模型来向您展示我希望用户看到的内容。谢谢!
  • “开”/“关”标签如何适合您的模型?
  • 对不起,我忘记了,我希望它直接放在 Propery2 之后的第二行。我将编辑模型以反映这一点。我正在寻找的与手机上的本机警报应用程序中的切换开关没有太大区别。我只想将第二个和第三个文本块正确绑定到与标题相同的对象。
  • @andersra 你搞定了吗?我也在寻找类似的解决方案。如果您可以分享您的代码,了解如何对第二和第三个文本块进行数据绑定,那就太好了!

标签: windows-phone-7 silverlight-toolkit


【解决方案1】:

您需要在转换器中修改 ToggleSwitch 的来源。

添加额外的文本/字符串属性以绑定 Property2 和 Property3。 (这些也需要是单独的项目,以便以不同的方式进行模板化 - 就像在警报应用程序中一样。)

然后查看更改 ContentProperty 的绑定或扩展 OffOnConverter 以包含其他新属性。

【讨论】:

  • 你指的转换器在哪里?我的标题绑定正确,所以我不确定为什么内容部分中的其他文本块没有以相同的方式绑定。
  • @andersra 它位于切换开关的源代码中
  • 源代码是指来自 codeplex 中工具包的源代码吗?
【解决方案2】:

您可能需要绑定到一个元素,请查看此帖子:

Silverlight 3 Element binding in a datatemplate

为元素提供数据模板 x:Name 属性,然后使用数据模板中的元素绑定。

希望这会有所帮助, 罗伯特

【讨论】:

  • 这不是我要找的
猜你喜欢
  • 2015-01-24
  • 2020-03-21
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多