Я работаю с WPF и использую привязку данных.
Я хотел бы создать UserControl, у которого есть свойство, которое можно использовать для привязки данных.
Кроме того, я хочу обновитьнекоторое другое свойство в UserControl, если свойство изменилось.
Например,
public class MyControl : UserControl
{
....
....
....
....
public ViewStyles CurrentView
{
get { return (ViewStyles)GetValue(CurrentViewProperty); }
set
{
SetValue(CurrentViewProperty, value);
UpdateView();
}
}
public static readonly DependencyProperty CurrentViewProperty = DependencyProperty.Register("CurrentView", typeof(ViewStyles), typeof(ComboView));
....
.....
.....
.....
}
Возникают проблемы:
Используется ViewModel и в котором есть свойствоViewStyle, который связан с CurrentView в приведенном выше примере.
Другой комбинированный список элементов управления также связан с данными ViewStyle в ViewModel.
На самом деле, я хочу использовать комбинированный список, чтобы выбрать другой видмой контрольКак сделать это возможным в MVVM?
Я попробовал вышеуказанный метод.Однако пользовательский интерфейс (разные ViewStyles MyControl) не изменился.Он изменяется только при нажатии на него мышью.
Спасибо.
XAML: (MyControl)
<Views:MyControl Grid.Column="1" Grid.Row="1" Height="505" HorizontalAlignment="Left" Margin="2,0,0,0" Name="comboView1" VerticalAlignment="Top" Width="983"
ViewStyle="{Binding Path=CurrentView}" BorderThickness="5" BorderBrush="Black" ItemsSource="{Binding Path=Images}"
SelectedIndex="{Binding Path=CurrentIndex}" Foreground="White"
</Views:MyControl>
XAML: (ComboBox)
<ComboBox Margin="0,3,1,0" Width="178" HorizontalAlignment="Right" Name="ViewDDBox" FontSize="13" Foreground="#FFF6F3F3" Background="#FF444444"
BorderThickness="2" Height="23" VerticalAlignment="Top" Grid.Column="1"
ItemsSource="{Binding Path=ViewTypes}" IsEnabled="True" SelectedValue="{Binding Path=CurrentView, Mode=TwoWay}">
</ComboBox>
Предполагается, что представление (некоторый эффект пользовательского интерфейса) будет изменено на MyControl после выбора в Combobox.Но теперь, это только изменится, когда я нажму на MyControl с помощью мыши.