У меня возникла проблема с привязкой к видимости моего usercontrol.Переплетная видимость usercontrol не сворачивает управление
Связывание с зависимым свойством Тип Видимость отлично работает и правильное значение (в данном случае Collapsed) удерживается DP. Содержимое моей сетки в UserControl настроено на сбой, но управление отверстиями не разрушается. Он по-прежнему удерживает занятое пространство определенным с помощью и значением, как указано в xaml.
EDIT: я узнал, что проблема в том, что я задал ширину и высоту в xaml, где я ссылаюсь на свой usercontrol. если я этого не делаю, управление рушится правильно (поэтому привязка работает нормально). Но мне нужно установить ширину и высоту в случае видимости usercontrol.
Любая идея, как я могу решить эту проблему?
<my:MenuButtonBase x:Class="bxSuite.Controls.MenuButtonLarge"
xmlns:my="clr-namespace:bxSuite.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Background="Black"
>
<Grid Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonVisibility}" >
<StackPanel>
<Image Source="{Binding ButtonImageSource}" Margin="5,10,5,5" Width="48" Height="48" VerticalAlignment="Top" HorizontalAlignment="Center" />
<TextBlock Text="{Binding FunctionHeader}" Foreground="White" TextWrapping="Wrap" TextAlignment="Center" Padding="5,5,5,5" FontSize="12" />
</StackPanel>
</Grid>
</my:MenuButtonBase>
В XAML я ссылаться мой UserControl как это (где конвертер производит видимость-состояние правильно):
<my:MenuButtonLarge Name="btnInEuqipment" ButtonVisibility="{Binding Path=User, Converter={StaticResource ConverterUserRightVisibility}, ConverterParameter=5}" VerticalAlignment="Top" FunctionHeader="{lex:Loc Key=MenuButton_InEquipment}" Width="130" ButtonImageSource="/bxSuite.RolloutManager;component/Images/inequipment_48x48.png" BackgroundEnabled="#FF0694FD" BackgroundHover="#FF0072C6" MenuButtonClick="btnInEuqipment_MenuButtonClick" Height="95" Margin="5,10,0,0" />
Hi Bruno, thanx для вашего предложения. Я написал так, как вы написали, но в результате UControl отображается как видимый. Но я думаю, что это может быть потому, что я не понимаю, что вы подразумеваете под «не забывайте обновлять относительный источник вашей привязки». Я скопирую ссылку на xaml на указанный выше билет, чтобы показать вам, как я использую свой пользовательский контроль. – Mike