VDP*_*VDP 1 .net c# wpf converter datepicker
我正在尝试使用转换器类基于DatePicker中的Date在ComboBox中标记Names.
我目前的问题是我不知道如何将DatePicker的日期绑定到"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>
Run Code Online (Sandbox Code Playgroud)
ConverterParameter属性不能是绑定的目标.只有DependencyObject的DependencyProperty才能成为绑定的目标.
您需要使用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>
Run Code Online (Sandbox Code Playgroud)
然后,您需要重写ColorFromMagazijnierIdConverter转换器来实现IMultiValueConverter接口,您可以在其中访问这两个值.
虽然,我不是100%确定你是否可以在样式资源中引用ElementName的collectDatePicker.但你肯定可以玩它!