전달 된 선택 값을 바인드 된 아이템 소스 목록에서 사용할 수없는 경우 선택한 값을 0으로 설정하려고합니다. 아래에 언급 한 바와 같이전달 된 선택 값을 바인드 된 아이템 소스 목록에서 사용할 수없는 경우 선택된 값을 0으로 설정
종류라는 클래스가있다 :
public class Category
{
private long _CategoryID;
public long CategoryID
{
get
{
return _CategoryID;
}
set
{
_CategoryID = value;
}
}
private string _CategoryName;
public string CategoryName
{
get
{
return _CategoryName;
}
set
{
_CategoryName = value;
}
}
}
이 창을 해당 창 내부 콤보 있습니다. 그리고 콤보는 아래와 같이 정의된다 :
<ComboBox Name="cbCagtegory" TabIndex="7" ItemsSource="{Binding CategoriesList}" SelectedValuePath="CategoryID" DisplayMemberPath="CategoryName" SelectedValue="{Binding Path=CategoryID}">
</ComboBox>
을 I는 콤보 및 콤보 선택된 값을 설정 한 속성에 바인딩하는 카테고리의리스트를 준비하고,이 창 뒤끝있다.
List<Category> CategoriesList= new List<Category>();
private long _CategoryID;
public long CategoryID
{
get
{
return _CategoryID;
}
set
{
_CategoryID = value;
RaisePropertyChanged("CategoryID");
}
}
이제 가정 해 봅시다는 CategoriesList는 두 개의 레코드가 포함되어 있습니다.
a. CategoryID=0, CategoryName='Category1'
b. CategoryID=1, CategoryName='Category2'
c. CategoryID=2, CategoryName='Category3'
질문.
CategoryId 속성 값을 5로 설정하면 콤보 상자에서 아무 것도 선택되지 않습니다. 지금은 선택한 값으로 CategoryID = 0을 설정하고 싶습니다. 그리고 이것을 XAML에서 구현하고 싶습니다.
지금까지 시도한 내용. 그 중
1.Assigned FallBackValue=0 as below
<ComboBox Name="cbCagtegory" TabIndex="7" ItemsSource="{Binding CategoriesList}" SelectedValuePath="CategoryID" DisplayMemberPath="CategoryName" SelectedValue="{Binding Path=CategoryID,FallBackValue=0}">
</ComboBox>
2. Assigned TargetNullValue=0 as below
<ComboBox Name="cbCagtegory" TabIndex="7" ItemsSource="{Binding CategoriesList}" SelectedValuePath="CategoryID" DisplayMemberPath="CategoryName" SelectedValue="{Binding Path=CategoryID,TargetNullValue=0}">
</ComboBox>
결과
없음 작동하지 않습니다. 콤보 박스에서 아무 것도 선택되지 않았습니다.
CategoryID 모델 내부에 사용하고 있습니다. XAML 내부에서 솔루션을 찾기 위해 일반화되기를 원했습니다. –