2
A прочитал много методов о способах привязки перечисления к combobox. Так что теперь в .Net 4.5 это должно быть довольно легко. Но мой код не работает. Не понимаю, почему.Cant bind enum to combobox wpf mvvm
XAML:
<Window x:Class="SmartTrader.Windows.SyncOfflineDataWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SyncOfflineDataWindow" Height="300" Width="300">
<Grid>
<StackPanel>
<ComboBox ItemsSource="{Binding StrategyTypes}" SelectedItem="{Binding StrategyType}" />
<Button Width="150" Margin="5" Padding="5" Click="Button_Click">Save</Button>
</StackPanel>
</Grid>
xaml.cs бакэнду
namespace SmartTrader.Windows
{
/// <summary>
/// Interaction logic for SyncOfflineDataWindow.xaml
/// </summary>
public partial class SyncOfflineDataWindow : Window
{
public SyncOfflineDataWindow(IPosition position, ContractType type)
{
DataContext = new ObservablePosition(position);
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
}
}
}
вид Модель:
namespace SmartTrader.Entity
{
public class ObservablePosition : NotifyPropertyChanged, IPosition
{
public IEnumerable<StrategyType> StrategyTypes =
Enum.GetValues(typeof (StrategyType)).Cast<StrategyType>();
public ObservablePosition(IPosition position)
{
Strategy = position.Strategy;
}
private StrategyType _strategyType = StrategyType.None;
public StrategyType Strategy
{
get { return _strategyType; }
set
{
_strategyType = value;
OnPropertyChanged();
}
}
}
}
StrategyType это перечисление. Все я получил его в список пуст выпадающий
'{Binding StrategyType}' - должно ли оно быть {{Стратегия привязки} '? –
что он сказал :) ... вы привязываетесь к неправильному свойству (ну, вы действительно привязываетесь к частному полю, чего вы не можете сделать). Я уверен, что вы получаете какую-то ошибку привязки на своей выходной консоли, которую игнорируете :) – Noctis
@Novikov. Это работает для вас? Для меня Он заполняет поле со списком, но изменение выбранного значения в поле со списком не изменяется (в вашем случае) «Стратегия». Добавили ли вы дополнительные вещи к этому? –