Я попытался привязать видимость нескольких кнопок к некоторым логическим точкам в режиме просмотра и заставить работать в режиме разработки. Я делал это несколько раз и никогда не испытывал проблем, но теперь это не сработает, и я не знаю, почему. Обратите внимание, что при работе приложения все работает .MVVM Binding не работает во время разработки
Я извлек суть в отдельное приложение, и оно все еще не работает!
Мой XAML:
<Window x:Class="BindingTest.MainWindow"
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"
xmlns:bindingTest="clr-namespace:BindingTest"
Title="MainWindow" Height="350" Width="525"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance bindingTest:TestViewModel, d:IsDesignTimeCreatable=true}">
<Grid>
<Grid.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
</Grid.Resources>
<StackPanel>
<Button Visibility="{Binding IsButton1Visible, Converter={StaticResource BoolToVis}}">Hallo 1</Button>
<Button Visibility="{Binding Button2Visibility}">Hallo 2</Button>
<Button>Hallo 3</Button>
</StackPanel>
</Grid>
</Window>
Мой ViewModel:
public class TestViewModel
{
public bool IsButton1Visible
{
get { return true; }
}
public Visibility Button2Visibility
{
get { return Visibility.Hidden; }
}
}
Чтобы заставить его работать в реальном приложении, я добавил к конструктору XAML:
DataContext = new TestViewModel();
Этот все довольно просто, но почему это не работает в дизайнере? Я всегда получал это, чтобы работать в прошлом, и теперь я пытался часами ... Это не единственное обязательство, не работающее, но почему это даже не работает?
Ожидаемый результат:
- Button1 видна
- Button2 скрытый
- Button3 видимую
Результат в конструкторе:
- Button1 рухнул
- Button2 видна
- Button3 видна
В вашей модели ViewModel не отображается тип Boolean, но вид. –
@ E-Bat, посмотрите еще раз ... – elgonzo
Я просто добавил Видимость, чтобы проверить, будет ли хотя бы _something_ работать. Но даже привязка видимости не работает так, как ожидалось ... – JCH2k