gpt4 book ai didi

c# - 将 DatePicker 的日期绑定(bind)到 ConverterParameter

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:51 25 4
gpt4 key购买 nike

我正在尝试使用转换器类根据来自 DatePicker 的日期在 ComboBox 中标记名称。

我目前的问题是我不知道如何将 DatePicker 的日期绑定(bind)到“ConverterParameter”。有什么建议吗?

(我的代码中可能有更多错误,但我卡在了这一点上)

<Page.Resources>  
<Style TargetType="ComboBoxItem" x:Key="combostyle">

<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<ControlTemplate.Resources>
<src:ColorFromMagazijnierIdConverter x:Key="conv" />
</ControlTemplate.Resources>

<Grid ToolTip="{Binding Converter={StaticResource conv}, ConverterParameter={ BIND THIS TO THE DATEPICKER DATE }, Mode=OneWay}">
<Rectangle x:Name="MarkedItemBackground" IsHitTestVisible="False" Fill="#80FF0000" />
<!--...-->
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Converter={StaticResource conv}}"
Value="{x:Null}">
<Setter TargetName="MarkedItemBackground"
Property="Visibility" Value="Hidden" />
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
<Grid Margin="10,10,10,0" Name="rootGrid">
<ComboBox Name="collectMagazijnierComboBox"
DisplayMemberPath="User.Name"
ItemContainerStyle="{DynamicResource ResourceKey=combostyle}"/>
<DatePicker Name="collectDatePicker" />
</Grid>

最佳答案

ConverterParameter 属性不能是绑定(bind)的目标。只有 DependencyObject 的 DependencyProperty 才能成为绑定(bind)的目标。

您需要使用 MultiBinding:

<Grid>
<Grid.ToolTip>
<MultiBinding Converter="{StaticResource conv}" Mode="OneWay">
<Binding /> <!-- this mimics your current binding to the datacontext itself -->
<Binding ElementName="collectDatePicker" Path="SelectedDate" />
</MultiBinding>
</Grid.ToolTip>

<Rectangle x:Name="MarkedItemBackground" IsHitTestVisible="False" Fill="#80FF0000" />

<!--...-->

</Grid>

然后您需要重写您的 ColorFromMagazijnierIdConverter 转换器以实现 IMultiValueConverter 接口(interface),您可以在其中访问这两个值。

不过,我不是 100% 确定您是否可以像这样从样式资源中通过 ElementName 引用 collectDatePicker。但你肯定可以玩弄它!

关于c# - 将 DatePicker 的日期绑定(bind)到 ConverterParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6002931/

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