Ich möchte mehrere Namen anzeigen, und ich möchte, dass sie bearbeitet werden können. Also habe ich eine ObservableColection verwendet und sie mit der neuen x: Bind-Funktion an ein ListView gebunden.ListView zwei Wege kompilierte Bindung (x: Bind)
Hier ist meine XAML:
<ListView>
<ListView ItemsSource="{x:Bind ViewModel.Players}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate xmlns:model="using:Flechette.Model" x:DataType="model:Player">
<TextBox Text="{x:Bind Name, Mode=TwoWay}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Und mein Code hinter:
public sealed partial class GameSettingsPage : Page
{
ViewModel.GameSettingsViewModel ViewModel { get; set; }
public GameSettingsPage()
{
InitializeComponent();
DataContextChanged += (s, e) => ViewModel = DataContext as ViewModel.GameSettingsViewModel;
}
}
Das Problem ist, dass TwoWay zu kompilieren fehlgeschlagen Bindung, erhalte ich die Fehler CS1061 'WeakReference' enthält keine Definition für 'LostFocus' und keine Erweiterungsmethode 'LostFocus', die ein erstes Argument vom Typ 'WeakReference' akzeptiert, konnten gefunden werden (fehlt eine using-Direktive oder eine Assemblyreferenz?)
Wie kann ich es beheben?
Können Sie die volle XAML zeigen. Machst du x: Bind auf dem LostFocus-Event? –
[Der vollständige XAML-Code] (http://pastebin.com/GL4vZn38) Wie Sie sehen können, möchte ich die Elemente in der ListView bearbeiten. Es funktioniert ordnungsgemäß mit klassischen Bindung, aber nicht mit x: Bind – GaaH
Wenn Sie die TwoWay Bindung an OneWay ändern, erhalten Sie das Problem? –