Tôi muốn hiển thị một số tên và tôi muốn chúng có thể chỉnh sửa được. Vì vậy, tôi đã sử dụng ObservableColection và liên kết nó với một ListView với tính năng x: Bind mới.ListView hai cách biên soạn ràng buộc (x: Bind)
Dưới đây là XAML của tôi:
<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>
Và mã của tôi đằng sau:
public sealed partial class GameSettingsPage : Page
{
ViewModel.GameSettingsViewModel ViewModel { get; set; }
public GameSettingsPage()
{
InitializeComponent();
DataContextChanged += (s, e) => ViewModel = DataContext as ViewModel.GameSettingsViewModel;
}
}
Vấn đề là TwoWay ràng buộc thất bại trong việc biên dịch, tôi nhận được 'WeakReference' lỗi CS1061 không chứa định nghĩa cho 'LostFocus' và không có phương pháp mở rộng 'LostFocus' chấp nhận đối số đầu tiên của loại 'WeakReference' có thể được tìm thấy (bạn đang thiếu một chỉ thị sử dụng hoặc tham chiếu assembly?)
Làm cách nào để khắc phục sự cố?
Bạn có thể hiển thị toàn bộ XAML. Bạn đang làm x: Liên kết với sự kiện LostFocus? –
[Mã XAML đầy đủ] (http://pastebin.com/GL4vZn38) Như bạn thấy, tôi muốn chỉnh sửa các phần tử trong ListView. Nó hoạt động đúng với ràng buộc cổ điển, nhưng không phải với x: Bind – GaaH
Nếu bạn thay đổi liên kết TwoWay thành OneWay, bạn có gặp vấn đề không? –