Ensemble DataContext dans le code XAML
J'ai cette application simple qui ajoute des éléments à une zone de liste déroulante:
public partial class Window1 : Window
{
private ObservableCollection<string> _dropDownValues = new ObservableCollection<string>();
public ObservableCollection<string> DropDownValues
{
get { return _dropDownValues; }
set { _dropDownValues = value; }
}
private string _selectedValue;
public string SelectedValue
{
get { return _selectedValue; }
set { _selectedValue = value; }
}
public Window1()
{
InitializeComponent();
DataContext = this;
DropDownValues.Add("item1");
DropDownValues.Add("item1");
DropDownValues.Add("item1");
DropDownValues.Add("item1");
DropDownValues.Add("item1");
DropDownValues.Add("item1");
}
}
Et voici le fichier XAML:
<Window x:Class="WpfApplication2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel HorizontalAlignment="Left" Margin="10">
<ComboBox
Margin="0 0 0 5"
ItemsSource="{Binding DropDownValues}"
SelectedValue="{Binding SelectedValue}"
Width="150"/>
</StackPanel>
</Window>
Quelqu'un peut me montrer comment puis-je régler le DataContext de la xaml fichier au lieu de l'initialisation dans le constructeur ?
Grâce.
Vous devez vous connecter pour publier un commentaire.
Il suffit de changer le
Window
de lierDataContext
à lui-même:Je crois que le DataContext dans ce scénario est implicite et n'a pas à être fixé puisque vous utilisez le code derrière. Si vous avez été en utilisant MVVM, vous devez ajouter une référence à ce dossier et de classe à l'intérieur de vous balisage XAML et de l'ensemble de la ressource clé, qui est égale à une valeur qui peut ensuite être déclaré comme le DataContext à l'intérieur de l'un des éléments d'enfant DataContext de la propriété. Mais dans votre cas (puisque vous n'êtes pas en utilisant MVVM) vous ne devriez pas avoir à le faire.