在DataGrid中时,弹出窗口不绑定到Toggle(xceed)

时间:2018-11-08 11:21:52

标签: wpf listbox popup toggle xceed

我制作了一个Toggle,它使用内部ListBox展开了一个弹出窗口。看起来像这样:

<ToggleButton Name="Toggle" Height="20" Width="150" >
    <StackPanel>
        <TextBlock Text="TestListPopup"/>
        <Popup Height="200" Width="150"
                            IsOpen="{Binding ElementName=Toggle, Path=IsChecked}"
                            PlacementTarget="{Binding ElementName=Toggle}"
                            HorizontalAlignment="Left"
                            VerticalAlignment="Bottom">
            <ListBox SelectionMode="Multiple" SelectionChanged="TypeSelectionChanged" >
                <ListBoxItem Content="Test1"/>
                <ListBoxItem Content="Test2"/>
                <ListBoxItem Content="Test3"/>
            </ListBox>
        </Popup>
    </StackPanel>
</ToggleButton>

它工作正常,但是我想在这里的xceed FilterRow的{​​{1}}中使用它:

DataGrid

在这里,弹出窗口将不会绑定到切换按钮。按下切换按钮不会执行任何操作。

我将其范围缩小为绑定被破坏,因为如果您设置IsOpen =“ True”,则它是开放的(并且不坚持PlacementTarget),但是又是;它在DataGrid外部完美运行。.

为什么将功能完善的控件放入<xcdg:DataGridControl x:Name="dataGrid" ItemsSource="{Binding Source={StaticResource DataSource}}"> <xcdg:DataGridControl.View> <xcdg:TableflowView> <xcdg:TableflowView.FixedHeaders> <DataTemplate> <xcdg:ColumnManagerRow/> </DataTemplate> <DataTemplate> <xcdg:FilterRow> <xcdg:FilterCell FieldName="Name" IsEnabled="True"/> <xcdg:FilterCell FieldName="Type" IsEnabled="True"> <!-- TestListPopup control here --> </xcdg:FilterCell> </xcdg:FilterRow> </DataTemplate> </xcdg:TableflowView.FixedHeaders> </xcdg:TableflowView> </xcdg:DataGridControl.View> <xcdg:DataGridControl.Columns> <xcdg:Column FieldName="Name" Title="Name" /> <xcdg:Column FieldName="Type" Title="Type" Width="160"/> </xcdg:DataGridControl.Columns> </xcdg:DataGridControl> 后会中断?

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:1)

  

为什么将功能完善的控件放入class Button extends React.Component { handleClick = () => { console.log("from buttom"); if (this.props.hasOwnProperty('onClick')){ this.props.onClick(); } 后会中断?

因为FilterRowToggleButton不属于同一namescope

您可以尝试使用FilterCell进行绑定:

x:Reference

另一种选择是将IsOpen="{Binding Path=IsChecked, Source={x:Reference Toggle}}" 的{​​{1}}属性绑定到视图模型的IsChecked属性,还要绑定{{ 1}}到相同的源属性。确保视图模型实现了ToggleButton接口,并在设置source属性时引发更改通知。