первую очередь - мне жаль, если это дубликат - смотрел вокруг на некоторое время и не смог найти ответ на этот вопрос,caliburn.micro связать видимость элемента с функцией ViewModel, а не свойство
Мы» re, используя caliburn.micro, поэтому решение должно использовать этот инструмент.
У нас есть представление, которое состоит из 9 кнопок, однако - не все из них будут видны в одно и то же время, это зависит от событий в системе. Каждая видимость каждой кнопки видима или свернута в зависимости от текущего состояния, но поскольку это большое количество кнопок и может увеличиться в будущем, я бы предпочел иметь одну функцию для этого (получение имени или перечисления и возврат видимости) вместо того, чтобы иметь большое количество свойств для привязки каждой кнопки.
Это еще один вариант? Кажется, я не мог найти способ сделать это обычным способом.
Поскольку события поступают из-за пределов программного обеспечения мы разрабатываем делать это на уровне представления не совсем вариант (или по крайней мере - не правильный)
Edit: Вот отрывок из посмотреть, что я хотел бы изменить:
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<uiviews:PhonePadView Grid.Column="0" x:Name="DestinationDn" cal:Bind.Model="UI.ViewModels.PhonePadViewModel" />
<Button Grid.Column="1" Content="Dial" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="MakeCall" Visibility="{Binding btnMakeCallVisibility}" />
<Button Grid.Column="1" Content="Answer" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="AnswerCall" Visibility="{Binding btnAnswerCallVisibility}" />
<Button Grid.Column="1" Content="Hang-up" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="ReleaseCall" Visibility="{Binding btnReleaseCallVisibility}" />
<Button Grid.Column="1" Content="Hold" Style="{StaticResource PhonePadBasicFunctionsButtons}" x:Name="HoldCall" Visibility="{Binding btnHoldCallVisibility}" />
</Grid>
Как вы можете видеть, мне нужно иметь разные свойства для каждой из кнопок, и я отказываюсь верить, что это единственный путь, у меня есть свойство держа текущий телефон (телефон звонит, звонит, набирает и т. д.), и на виртуальной машине легко указать, какая кнопка должна быть видимой, а какая нет, nd поверх этого у нас в настоящее время есть 9 кнопок, но он может так же легко расширяться, поэтому я ищу самый модульный код здесь
ли вы рассмотреть наличие 9 экземпляров (суб-) ViewModel и построения соответствующей 1-кнопку View? –
Не совсем ... Я не понимаю, ваше предложение быть честным - не могли бы вы уточнить? –
Я подозреваю, что вашу проблему можно решить, разделив ее на UserControls с помощью кнопки 1. Но, не видя никакого кода, трудно быть конкретным. –