【发布时间】:2015-04-09 09:31:11
【问题描述】:
所以,我有这个窗口。在它上面,我正在成对创建一个 TextBlocks 和 TextBoxes 的列表。当您单击其中任何一个时,它们都会在相应的 TextBox 中输入一个数字,并在后台设置一些值。现在一切正常。
我有以下 XAML 来创建自定义复选框(因为它具有我想用于此目的的行为)。我的问题是我想将不同的内容绑定到 TextBlock 和 TextBox 中。对于 TextBlock,我绑定了 Content 属性,但找不到合适的选项来满足第二个绑定。我考虑将它放在标签中,但这感觉不对,而且无论如何,我已经将我需要的索引值绑定到那里。
<Style x:Key="CustomCHK" TargetType="{x:Type CheckBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<DockPanel LastChildFill="True">
<TextBox DockPanel.Dock="Right" Width="50" Height="30" />
<TextBlock Text="{TemplateBinding Content}" TextWrapping="Wrap" />
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
感觉应该有一个简单的解决方案,但我只是想决定什么是最好的。我是否要创建一个自定义复选框类并只添加几个属性?
与往常一样,我很感激你能给我提供的任何方向。
【问题讨论】:
-
您想绑定到文本框的第二个值是多少?它是用户输入吗?但是假设文本框是用户输入,我认为对于您的情况,为复选框添加自定义控件并向其添加新属性会更合适。
-
@Sypher_04 您所拥有的看起来更像
UserControl或自定义控件,您可以在其中创建自己的依赖项属性。或者,如果您仍想使用CheckBox,您可以创建附加属性 -
有点像我的想法。基本上我有一个收集所有用户输入的背景对象。最初,所有文本框都是空白的。绑定到空字符串值。收到输入后,如果用户返回此屏幕,他们的输入将通过背景对象上的绑定重新加载到屏幕上。
-
@Sypher_04 是否有任何特殊原因使您模板化
CheckBox控件?这是您想要的行为(可以在两种状态之间切换的控件)吗?或者你只是因为它有一个通用的Content属性而使用它?